20145301赵嘉鑫《网络对抗》Exp8 Web基础
20145301赵嘉鑫《网络对抗》Exp8 Web基础
基础问题回答
什么是表单?
表单是一个包含表单元素的区域,主要负责数据采集部分。表单元素允许用户在表单中输入信息。一个表单有三个基本组成部分:表单标签、表单域、表单按钮;
- 表单标签:包含处理表单数据所用的URL以及数据提交到服务器的方法;
- 表单域:包含了文本框、密码框、多行文本框、下拉选择框等等;
- 表单按钮:包括提交按钮、复位按钮和一般按钮。
浏览器可以解析运行什么语言?
- 支持HTML(超文本标记语言)、XML(可扩展标记语言)以及Python、PHP、JavaScript、ASP等(脚本语言)。
WebServer支持哪些动态语言?
- JavaScript、ASP、PHP、Ruby等脚本语言,
- JSP,是一个简化的servlet设计,其web应用有好的跨平台性。
- ASP是微软的服务器端脚本技术。
- PHP基于APACHE WEB SERVER,是一种通用开源脚本语言。
实践目标
(1)Web前端:HTML基础
(2)Web前端:javascipt基础
(3)Web后端:MySQL基础
(4)Web后端:PHP基础
(5)SQL注入,XSS攻击测试
(6)发帖和会话管理的实现
Apache
- 本次Web开发是基于Apache服务器进行的。
- 安装指令sudo apt-get install apache2
- 对于Apache的配置可以输入指令 sudo vi /etc/apache2/ports.conf指令来进行修改,端口改到了80。
- 指令apachectl start打开Apache服务,使用netstat -aptn查看端口占用。
- 如果端口被占用,使用netstat -tupln |grep 80指令查看80端口被哪些进程占用,用kill+进程ID杀死进程
- Apache服务开启后,浏览器中输入localhost:80进行查看,打开了上次实验克隆的网页,说明Apache正常工作。


HTML基础与javascipt基础
- cd var/www/html进入到Apache的工作目录下,vi 5301.html新建一个含有表单的html,所以可以编写一个简单的登录页面,并使用JavaScript来编写一个验证用户名、密码的规则,如果输入的用户名或者密码为空时,就弹出相应的对话框。具体代码如下
- 简单的html


网页效果:


Web后端:MySQL基础
- 既然要登陆并验证要涉及到到后台数据库,MySQL就是一个数据库管理系统,MySQL是开放的并且免费
先输入/etc/init.d/mysql start指令开启mysql服务,输入mysql -u root -p,并根据提示输入密码,大家都说默认密码为p@ssw0rd(但我的密码很奇怪,居然为空。。。),进入MySQL,输入时注意有无分号:

对密码进行修改:输入use mysql;,选择mysql数据库;输入update user set password=PASSWORD("新密码") where user='root';

输入flush privileges;,更新权限;
接着输入quit退出MySQL,重新进入,使用新密码登录成功,说明修改成功:
输入create database 库名;建立一个数据库;使用show databases;查看存在的数据库;使用use 库名;使用数据库:

输入create table 表名 ;建立数据表,使用show tables可以查看存在的数据表:

输入insert into 表名 values('值1','值2',...);插入数据;使用select * from 表名查询表中的数据:

MySQL中增加新用户,输入grant select(insert,update,delete) on 数据库.* to 用户名@登录主机 identified by "密码";指令,增加新用户成功:

Web后端:PHP基础
- PHP是一种通用开源脚本语言,PHP将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
在/var/www/html目录下新建5301.php
利用PHP和MySQL结合之前编的登录网页进行用户身份认证,这里参考老师给的代码编写login.php。

其中127.0.0.1是本机地址,root是MySQL的用户名,zjx5301是我之前设置的登录密码,zjx_test是数据库的库名。
先将之前编的登录网页的代码中form的action属性改成5301.php,在浏览器中输入localhost:80/5301.html访问登录页面:
在登录页面中输入数据库中存有的用户名和密码并点击登录进行用户认证,如果登录成功:

登录失败:

SQL注入
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库。
在用户名输入框中输入' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为select * from zjxtable where username='' or 1=1#' and password='',#相当于注释符,而1=1是永真式,能够成功登陆:


还可以通过SQL注入将用户名和密码保存在数据库中。修改一下之前的代码,mysqli->query($query_str))

改成mysqli->multiquery($querystr))便能实现执行多个sql语句,接着在用户名输入框中输入';insert into zjxtable values('wsc','5331');#,由于太长。。。之前设置的用户名长度不够,只能删掉表再设置一遍
删除

接着登录,出现如下所示页面:

我们可以在数据库中查询一下是否添加成功:

使用新插入的用户名和密码进行登录,登录成功。
XSS攻击测试
- XSS攻击:跨站脚本攻击。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。
测试,在用户名输入框中输入
<img src="bg1.jpg">5301</a> 读取/var/www/html目录下的图片,密码随意输入点击登录后我们可以看到图片(太大显示不出来。。。。。):

发帖和会话管理
- 我们可以利用PHP实现会话管理,修改来自罗同学,代码不再赘述
- 在浏览器中输入http://127.0.0.1:80/logIn.php,进行登录:





20145301赵嘉鑫《网络对抗》Exp8 Web基础的更多相关文章
- 20145301赵嘉鑫 《网络对抗》Exp9 Web安全基础实践
20145301赵嘉鑫 <网络对抗>Exp9 Web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入攻击原理:SQL 是一门 ANSI 的标准计算机语言,用来访 ...
- 20145301 赵嘉鑫 《网络对抗》Exp6 信息搜集与漏洞扫描
20145301赵嘉鑫<网络对抗>Exp6 信息搜集与漏洞扫描 基础问题回答 哪些组织负责DNS,IP的管理? 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.D ...
- 20145301 赵嘉鑫 《网络对抗》Exp5 MSF基础应用
20145301 赵嘉鑫 <网络对抗>Exp5 MSF基础应用 一 实验链接 渗透实验一:MS08_067渗透实验 渗透实验二:MS14_064渗透实验 (首用) 渗透实验三:Adobe ...
- 20145301赵嘉鑫《网络对抗》逆向及Bof基础
20145301赵嘉鑫<网络对抗>逆向及Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回 ...
- 20145326蔡馨熤《网络对抗》—— Web基础
20145326蔡馨熤<网络对抗>—— Web基础 1.实验后回答问题 (1)什么是表单. 表单是一个包含表单元素的区域,表单元素是允许用户在表单中输入信息的元素,表单在网页中主要负责数据 ...
- 20155305《网络对抗》Web基础
20155305<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...
- 20155307实验八 《网络对抗》 Web基础
20155307实验八 <网络对抗> Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用 ...
- 20155311《网络对抗》Web基础
20155311<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...
- 20145216史婧瑶《网络对抗》Web基础
20145216史婧瑶<网络对抗>Web基础 实验问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签.表单域.表单按钮. (2)浏览器可以 ...
随机推荐
- 《机器学习实战》2.2.2分析数据:使用matplotlib创建散点图
#输出散点图 def f(): datingDataMat,datingLabels = file2matrix("datingTestSet3.txt") fig = plt.f ...
- Oracle备份恢复之热备份恢复及异机恢复
原理: 数据库必须运行在归档模式下,否则备份没有意义.备份前冻结块头,使scn号不变化,然后cp物理文件,最后解冻块头.此过程dml语句可以正常执行,动作被写在日志文件里面,当解冻scn号后,日志文件 ...
- Windows server 2016 安装及ORACLE 12C 安装
首先创建虚拟机,选择windows server 2016 启动虚拟机,进入安装界面,语言默认中文,选择下一步 选择标准安装(桌面) 选择接受条款 选择自定义安装 进行分区,如下图所示 进行安装 设定 ...
- 洛谷P2414 阿狸的打字机 [NOI2011] AC自动机+树状数组/线段树
正解:AC自动机+树状数组/线段树 解题报告: 传送门! 这道题,首先想到暴力思路还是不难的,首先看到y有那么多个,菜鸡如我还不怎么会可持久化之类的,那就直接排个序什么的然后按顺序做就好,这样听说有7 ...
- django时间的时区问题
在用django1.8版本做项目的时候遇到时间的存储与读取不一致的问题,网上找了很多帖子,但都没有讲明白.本文将在项目中遇到的问题及如何解决的尽可能详细的记录下来,当然本文参考了网上大量相关文章. 在 ...
- LeetCode 第 338 题 (Counting Bits)
Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the ...
- iOS开发-url包括中文报错解决的方法
常常, 我们用通过这个方案调用API. NSString* urlString = [NSString stringWithFormat:@"http://api.douban.com/v2 ...
- Spark与Spring集成做web接口
需要实现的功能: 写访问spark的接口,也就是从web上输入网址就能把我们需要的信息通过提交一个job然后返回给我们json数据. 成果展示: 通过url请求,然后的到一个wordcount的jso ...
- 【转】SVM入门(一)SVM的八股简介
(一)SVM的八股简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够 ...
- 源代码下载 作者:王先荣(Xianrong Wang)
作者:王先荣(Xianrong Wang) 下面是我的一些源代码: 1. 图像处理学习系列源代码——包括该系列文章的几乎所有代码: 1.5. 图像处理学习系列中用到的dll文件包——将这个解压缩之后放 ...
<img src="bg1.jpg">5301</a> 读取/var/www/html目录下的图片,密码随意输入