实验链接
XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
链接:http://www.hetianlab.com/expc.do?ce=01ef8295-5283-4009-a90a-17c969a87998
实验简介
-
实验所属系列:Web应用安全
-
实验对象: 本科/专科信息安全专业
-
相关课程及专业:信息网络安全概论
-
实验类别:实践实验类
实验目的
-
深入理解xss工作原理;
-
怎么去绕过规则实现xss
预备知识
实验环境
浏览器/服务器环境;
服务器配置:apache+php+Mysql;
打开实验网址(http://10.1.1.11:81),可以看到实验练习系统:
实验步骤
本实验分为三个实列任务(续写实验二):
实例七:和实例六有什么区别?
实例八:有时候你要跳出来你的思维
实例九:将xss进行到底
实例七:和实例六好像木有区别
关键代码:
尝试构造语句使浏览器执行弹出对话框的脚本。
由关键代码可知,在输出时,程序会将html编码转译。我们尝试输入一个 “ < " ,查看网页源代码:
那就不输入html语言,尝试绕过html实体编码。
直接根据提示输入弹窗,类似于实验六。
输入 name=hacker';alert($a);$a='
成功!
查看源代码:
重点观察引号的位置,这就是与实验六处理的不同之处。
实例八:有时候你要跳出你的思维
关键代码:
尝试构造语句使浏览器执行弹出对话框的脚本。
先观察一下正常提交的代码格式:
发现没有什么用。
再尝试输入html语言,失败:
输出时会对html标签进行转译。
观察一下关键代码。
由关键代码可知,存入的action内容就是url的路径。尝试一下修改url:
因此我们可以在url上做手脚。
在地址栏输入"onsubmit=javascript:alert(1);name="a
返回正常:
说明格式无错误,此时可以查看一下源代码:
成功!
此时应该都知道了,不论我输入什么,都会出现弹窗,且显示 “ 1 ” :
实例九:将xss进行到底
关键代码:
尝试构造语句使浏览器执行弹出对话框的脚本。
首先打开网页看一下url,与之前的url都有所不同,这是代码中hash的体现:
location.hash 就是 #hacker (听老师说的好像是这个意思,如果有误欢迎提出)
substring(1) 说明从字符串下标1的位置开始截取,写入文件。
这里同样使用img onerror的方式来输出弹窗:
成功!
查看网页源代码:
这里的语句未改变,可见编码是的动态的。