news 2026/9/5 8:50:07

你能从 PayloadsAllTheThings 学到什么:XSS 检测与 Payload 绕过入门实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
你能从 PayloadsAllTheThings 学到什么:XSS 检测与 Payload 绕过入门实战

你能从 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 工具对比:

工具实现语言检测速度适用场景
XSStrikePython中等单目标深度测试,内置多种绕过策略
DalfoxGo多端点批量扫一遍,快速筛面
XSpearRuby中等盲场景的后台长时挂起监听

选型思路一句话:先用 Dalfox 扫面,可疑点交给 XSStrike 深挖,XSpear 留给需要"挂机等回调"的场景。

第三步:🔍 被过滤时,试试这三类 WAF 绕过思路

项目XSS Injection目录里专门有过滤绕过与多态 payload 文档,思路可以收敛成三条:

  1. 编码变换:同一批字符用 HTML 实体、百分号编码写出来,命中的过滤规则完全不同。
  2. 协议混淆:改动javascript:协议的结构,让检测正则匹配失败,浏览器却仍按原意解析。项目中的演示如下——

![两种javascript:协议写法的浏览器解析差异,XSS payload协议混淆绕过演示](https://raw.gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings/raw/5443cbde384134094f25b1b440695757a2803d55/XSS Injection/Images/DwrkbH1VAAErOI2.jpg?utm_source=gitcode_repo_files)

上面一行javascript:alert()是常规写法;下面一行写成javascript://:%0aalert(),浏览器解析后协议部分不再被识别为 javascript 协议。检测规则和浏览器行为产生分叉,绕过就成立了。

  1. 上下文感知:注入点决定形态。标签体内、属性内、JS 字符串里,需要的引号与转义各不相同,payload 要为上下文裁剪。

验证原理用最小示例即可:

<img src=x onerror=alert(1)>

把它粘进搜索框,回车后弹窗出现,说明回显点成立;再换成无交互的无害载荷记录结果,不必继续加码。

第四步:🎯 进阶场景——盲 XSS 与文件上传 XSS

  • 盲 XSS:输入不在你可见的任何页面回显,但会出现在别处——比如联系表单的"联系人"字段最终显示在管理员后台的日志页。payload 带一个回传地址,等真正访问该页面的管理员触发。项目 XSS Injection 文档的 Blind XSS 一节列出了常见适用端点与技巧。
  • 文件上传 XSS:图片或 SVG 过了上传校验,仍可能以网页形式被浏览器解析。SVG 可以内嵌脚本标签,部分格式的元数据字段也会原样回显。Upload Insecure Files模块用一张脑图整理了这块攻击面:

![文件上传场景XSS风险与过滤绕过全攻击面脑图](https://raw.gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings/raw/5443cbde384134094f25b1b440695757a2803d55/Upload Insecure Files/Images/file-upload-mindmap.png?utm_source=gitcode_repo_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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 2:58:13

PaddleOCR 三步把营业执照图片变成结构化数据

PaddleOCR 三步把营业执照图片变成结构化数据 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages. 项目地址:…

作者头像 李华
网站建设 2026/9/2 9:15:53

Mac 本地开源 TTS 实战:基于 Piper 实现离线语音合成

之前在做一个小工具时&#xff0c;需要给生成的文本加上语音播报能力。最开始想到的是直接调用云厂商的 TTS 服务&#xff0c;但试了一圈后发现两个绕不开的问题&#xff1a;一是文字内容要上传到对方服务器&#xff0c;涉及隐私和合规风险&#xff1b;二是按字符计费&#xff…

作者头像 李华
网站建设 2026/9/2 7:41:40

五大经典排序算法深度解析:从原理到Java实现与性能对比

1. 项目概述&#xff1a;为什么排序算法是程序员的必修课&#xff1f; 如果你写过代码&#xff0c;几乎不可能没和排序打过交道。无论是从数据库里拉出一堆用户数据按时间倒序排列&#xff0c;还是在前端展示一个价格从低到高的商品列表&#xff0c;排序都是那个藏在幕后、却无…

作者头像 李华
网站建设 2026/8/31 11:51:16

Hermes Agent 快速上手指南:3步认识这个自我进化的AI Agent

Hermes Agent 快速上手指南&#xff1a;3步认识这个自我进化的AI Agent 【免费下载链接】hermes-agent The agent that grows with you 项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent 上周你让AI排查了一个测试失败&#xff0c;任务完成后对话就断了&…

作者头像 李华
网站建设 2026/9/1 6:39:12

Linux内核模块开发入门:从Hello World到驱动框架详解

1. 从“Hello, World!”到内核模块&#xff1a;为什么驱动开发从这里开始 如果你写过C语言&#xff0c;第一个程序大概率是打印“Hello, World!”。在Linux驱动开发的世界里&#xff0c;这个传统同样适用&#xff0c;但意义截然不同。一个用户空间的“Hello, World!”程序&…

作者头像 李华