博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20144303石宇森 《网络对抗》 WEB基础实践
阅读量:4965 次
发布时间:2019-06-12

本文共 2672 字,大约阅读时间需要 8 分钟。

20144303石宇森 《网络对抗》 WEB基础实践

实验后回答问题

一、什么是表单

表单是一个包含表单元素的区域。用form来定义。

HTML是静态显示网页的,无法跟服务器进行交互,所以表单就是跟服务器进行交互的一种方式,用来搜集用户的输入。打个比方,我们在很多网站上登录时,登录框就是表单构成的。

表单能包含input元素,比如文字段、复选框、单选框、提交按钮等等。表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。

二、浏览器可以解析运行什么语言

可以运行超文本标记语言HTML、可扩展标记语言XML以及一些像ASP、PHP、Script、JavaScript、VBScript、Perl、Python、ColdFusion、Java、JSP等的脚本语言。

三、WebServer支持哪些动态语言

支持PHP、JSP等语言

实验总结与体会

本次实验使用表单编写了一个简单的登录界面,然后通过编写一个php让页面的前端和数据库连接起来。我们也通过mysql来建立一个表单,在表单中添加了用户名和密码。整个过程让我大致理解了一个网页是怎样跟服务器建立起连接,又是怎么完成用户的登录的。

在完成一个简单的登录页面的构造之后,尝试了对这个简单页面的SQL攻击。SQL攻击简单来说就是利用漏洞,通过在用户名上注入攻击语句,让它把这个语句当成sql语句执行,完成攻击。XXS的攻击方法和SQL类似,虽然不能成功登陆,但是可以把文件路径下的某个图片加载出来。

让我印象比较深刻的是利用SQL攻击可以在数据控中伪造一个用户名和密码,可以利用这个用户名和密码成功登陆。在这种简单的攻击方法面前,我们的网页都显得如此脆弱,很难想象数据信息的丢失和被盗现象有多严重。

实践过程记录

一、Web前端HTML:

使用apachectl start命令来开启Apache。上次实验没关,所以显示已经开启了

884664-20170507145204117-803302250.jpg

查看80端口是谁在占用。可以看出来,是Apache在使用80端口,就不用重新设置了。

884664-20170507145210789-2089901185.jpg

打开localhost:80,可以看到之前克隆的淘宝的网页

884664-20170507145216945-1622190124.jpg

先在HTML文件夹下新建一个html,测试一下。因为只是一个前端网页,还没有连数据库,点登录会报错

884664-20170507145226539-1613311979.jpg

二、Web前端javascipt:

JavaScript验证用户名、密码的规则:

function nameText(){var name= document.getElementByIdx_x ("username");var divID= document.getElementByIdx_x ("divName");divID.innerHTML="";if(name.value==""){ divID.innerHTML="用户名不能为空"; return false;}}function passText(){var pass= document.getElementByIdx_x ("password");var divIP= document.getElementByIdx_x ("divPass");divIP.innerHTML="";if(pass.value==""){ divIP.innerHTML="密码不能为空"; return false; }}}</script>

JavaScript是一种直译脚本语言,是浏览器的一部分,广泛用于客户端,最早用于HTML网页,用来给网页增加动态功能

DOM可以看做是节点,可以使用 Javascript 语言来操作 DOM 以改变网页。为了改变网页,你必须告诉 Javascript 改变哪一个节点。这就是操作 DOM。

三、Web后端:MySQL基础:

首先,我们要开启MYSQL

884664-20170507145247523-314778064.jpg

然后输入mysql -u root -p,接下来输入密码,进入数据库

884664-20170507145255992-1100639333.jpg

因为初始化的密码是p@ssw0rd,我们要对这个密码进行修改

884664-20170507145305789-1866902571.jpg

然后在数据库中新建一个名为biaodan的表

884664-20170507145314195-480768491.jpg

在表中要添加一个用户,输入该用户的用户名(shiyusen)和密码(20144303),以供我们后面登录时使用

884664-20170507145323757-1836684938.jpg

四、Web后端:PHP基础:

先创建好一个新的PHP,然后对它进行测试

884664-20170507145333148-1817379372.jpg

884664-20170507145339664-1629103899.jpg

884664-20170507145344836-723230211.jpg

测试完成后,我们就要编写好前端网页(123.html)和与之相绑定的PHP(123.php)

884664-20170508142923082-99313623.jpg

使用在数据库中添加的用户名和密码,测试能否正常登录

884664-20170507145407132-350515231.jpg

然后随便输一个错误的用户名和密码,测试能否正常登录

884664-20170507145416382-801564925.jpg

五、SQL攻击:

接下来就到了本次实验的重点环节,对这个页面进行攻击了

首先,我们在用户名中输入' or 1=1#,密码随便输,发现登录成功了

884664-20170508143036613-884766131.jpg

884664-20170507145433023-776329611.jpg

这是因为相当于是用了查询语句select * from biaodan where username='' or 1=1#' and password=''。#是个注释符,后面的内容都会消去。1=1这个条件有是恒成立的,所以不管密码输什么都能登录成功

输入 ';insert into users(userid,username,password,enabled) values(2,'gongji',password("20144303"),"TRUE");# 可以在数据库中保存输入的用户名(gongji)和密码(20144303)。

它相当于两条sql指令:

SELECT * FROM users WHERE username='';

insert into users(userid,username,password,enabled) values(2,'gongji',password("20144303"),"TRUE");

然后我们用gongji密码为20144303可以正常登录

884664-20170508143230801-1752518847.jpg

884664-20170507145452414-1262394151.jpg

884664-20170508143235191-2055734325.jpg

884664-20170507145513523-451984656.jpg

需要注意的是,在输入命令进行攻击之前,要把PHP文件的代码稍作修改。if ($result = $mysqli->query($query_str)) 改成if ($result = $mysqli->multi_query($query_str))。然后在登录之后,再将multi删去,才能成功登录

六、xxs攻击:

在var/www/html下添加一个图片4303xxs.jpg

输入在用户名栏输入<img src="4303xxs.jpg" />20144303</a>,完成攻击

884664-20170508143419691-337434658.jpg

884664-20170507145603820-13002551.jpg

转载于:https://www.cnblogs.com/20144303sys/p/6820848.html

你可能感兴趣的文章
extjs动态改变样式
查看>>
PL/SQL Developer 查询的数据有乱码或者where 字段名=字段值 查不出来数据
查看>>
宏定义
查看>>
笔记:git基本操作
查看>>
生成php所需要的APNS Service pem证书的步骤
查看>>
JavaWeb之JSON
查看>>
HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
查看>>
windows平台上编译mongdb-cxx-driver
查看>>
optionMenu-普通菜单使用
查看>>
MVC3分页传2参
查看>>
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
appium(13)- server config
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>
清除浮动
查看>>
PayPal(贝宝)支付接口、文档、IPN
查看>>
ORACLE 10G R2_执行计划中cost cardinality bytes cpu_cost io_cost解释
查看>>