你能从 PayloadsAllTheThings 学到什么:XSS 检测与 Payload 绕过入门实战
【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings
XSS(跨站脚本)指网页被注入脚本、在受害者浏览器里执行,XSS 检测是前端安全工程师最先要练的一项基本功。本文以开源渗透测试素材库 PayloadsAllTheThings 为练习手册,带你用五个步骤走完从发现回显点到合规披露漏洞的完整流程,全程基于授权测试。
第一步:先弄清 XSS 的三种形态
三种形态的区别在于代码"存在哪、怎么被触发":
- 反射型:payload 藏在 URL 参数里,受害者点一条构造好的链接,服务端原样回显,页面就弹窗——典型场景是搜索框的"未找到结果"提示。
- 存储型:代码被写进服务器,之后每个人打开页面都会触发一次,论坛评论区是重灾区。
- DOM 型:服务器根本不存储,浏览器自己根据输入改写页面。服务端日志查不到痕迹,是三者里最不好找的。
项目内XSS Injection模块正是从这套分类讲起,再展开检测方法与 PoC 写法,可以作为第一手参考。
第二步:XSS 工具怎么选
逐个参数手测太慢,就掏出自动化工具。三款常用 XSS 工具对比:
| 工具 | 实现语言 | 检测速度 | 适用场景 |
|---|---|---|---|
| XSStrike | Python | 中等 | 单目标深度测试,内置多种绕过策略 |
| Dalfox | Go | 快 | 多端点批量扫一遍,快速筛面 |
| XSpear | Ruby | 中等 | 盲场景的后台长时挂起监听 |
选型思路一句话:先用 Dalfox 扫面,可疑点交给 XSStrike 深挖,XSpear 留给需要"挂机等回调"的场景。
第三步:🔍 被过滤时,试试这三类 WAF 绕过思路
项目XSS Injection目录里专门有过滤绕过与多态 payload 文档,思路可以收敛成三条:
- 编码变换:同一批字符用 HTML 实体、百分号编码写出来,命中的过滤规则完全不同。
- 协议混淆:改动
javascript:协议的结构,让检测正则匹配失败,浏览器却仍按原意解析。项目中的演示如下——

上面一行javascript:alert()是常规写法;下面一行写成javascript://:%0aalert(),浏览器解析后协议部分不再被识别为 javascript 协议。检测规则和浏览器行为产生分叉,绕过就成立了。
- 上下文感知:注入点决定形态。标签体内、属性内、JS 字符串里,需要的引号与转义各不相同,payload 要为上下文裁剪。
验证原理用最小示例即可:
<img src=x onerror=alert(1)>把它粘进搜索框,回车后弹窗出现,说明回显点成立;再换成无交互的无害载荷记录结果,不必继续加码。
第四步:🎯 进阶场景——盲 XSS 与文件上传 XSS
- 盲 XSS:输入不在你可见的任何页面回显,但会出现在别处——比如联系表单的"联系人"字段最终显示在管理员后台的日志页。payload 带一个回传地址,等真正访问该页面的管理员触发。项目 XSS Injection 文档的 Blind XSS 一节列出了常见适用端点与技巧。
- 文件上传 XSS:图片或 SVG 过了上传校验,仍可能以网页形式被浏览器解析。SVG 可以内嵌脚本标签,部分格式的元数据字段也会原样回显。
Upload Insecure Files模块用一张脑图整理了这块攻击面:

第五步:合规底线排在最前面
所有测试都应在书面授权范围内进行,不发范围外请求。
- 用无害载荷验证:
alert足以说明问题,不向目标环境发送真实的 cookie 外带脚本。 - 保留现场:payload、参数名、弹窗截图,这些就是漏洞报告的原材料。
- 及时报告:验证完成后尽快同步平台方并附复现步骤,修复方案交给对方决定。
写在最后
XSS 检测不是背 payload 清单,而是快速判断输入的回显位置与上下文,再从一行控制台输出里想到下一步验证方向。把 PayloadsAllTheThings 当素材库,在授权环境里把每一步走一遍,你就有了自己的检测路径。
【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考