PayloadsAllTheThings 实战指南:渗透测试 payload 库如何用在 3 个真实测试场景
【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings
PayloadsAllTheThings 是一个面向 Web 安全测试与渗透测试的 payload 与 WAF 绕过资源库,覆盖 60 余个漏洞分类,每个模块都附带可直接导入 Burp Suite 的字典文件。本文面向正在做安全测试、又厌倦了到处翻博客凑 payload 的工程师,带你从克隆仓库到跑通第一轮测试。
项目定位:解决"payload 散落各处"的问题
做 Web 渗透测试时,payload 往往散落在不同年份的博客、CTF writeup 和工具默认参数里,同一个漏洞要找十几处才能凑齐。这个项目把同类攻击向量集中在一个目录下:每个漏洞分类就是一个文件夹,原理、payload 变体、绕过技巧挨在一起,找东西靠目录结构而不是搜索引擎。它适合两类人:一是执行渗透测试任务、需要快速取用现成 payload 的测试工程师;二是想建立漏洞知识框架的新手——目录本身就是漏洞分类法。
一眼看懂:
SQL Injection/:按 MySQL、PostgreSQL、MSSQL 等数据库分章节,另配 WAF 绕过与时间盲注字典Server Side Template Injection/:SSTI(服务端模板注入,即模板引擎把可控输入当模板解析)按 Python、Java、PHP、JavaScript 等语言拆成独立文件Upload Insecure Files/:文件上传绕过案例,含 ImageMagick CVE、SVG、图片压缩等真实可复现 payload
快速上手:从克隆到跑通的最短路径
克隆到本地后直接用文件阅读器浏览即可,项目不需要构建或安装任何依赖:
git clone https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings
- 在本地任意目录执行上面的命令克隆仓库;
- 用 VS Code 或直接打开目录,按测试目标进对应漏洞文件夹;
- 每个模块内部结构高度一致:
README.md讲原理并内嵌 payload,Intruder/或Intruders/放可直接导入 Burp 的字典,Files/放附件,Images/放配图——拿到任何模块都先读 README,再按需取字典; - 拿不准从哪测起,就从模块 README 的 Summary 目录锚点跳,它把"入口点探测 → DBMS 识别 → 盲注 → WAF 绕过"的测试顺序直接列出来了。
场景化走查:把模块用在三个真实测试里
场景一:验证接口是否存在 SQL 注入
测试目标:确认某参数点能注入 SQL,并判断 WAF 的过滤边界。
对应模块:SQL Injection/。
怎么用:先用SQL Injection/Intruder/Generic_Fuzz.txt作为 Burp Suite Intruder 的 payload 字典,把参数值整体替换后批量请求,对比状态码和响应差异找注入点。确认注入点后,再换Auth_Bypass.txt测认证绕过——注入点在登录框上时价值更高。被 WAF 拦下时不要盲目换 payload 硬试,而是判断 WAF 拦的是空格、逗号还是等号,然后到模块 README 的 Generic WAF Bypass 章节找对应的改写写法(No Space Allowed / No Comma Allowed / No Equal Allowed)。

图中展示的是把经典探测语句改写成 Unicode 编码的对照:当 WAF 按 ASCII 字符黑名单过滤单引号时,用全角字符替身再靠应用层解码即可通过,这类"编码换皮"技巧在模块 README 里成体系地整理着。
场景二:确认目标技术栈后验证 SSTI
测试目标:判断输入是否被模板引擎二次解析。
对应模块:Server Side Template Injection/。
怎么用:该模块按语言拆文件,先确认目标技术栈,再进对应文件(Python.md、Java.md、PHP.md 等)。探测优先用乘法表达式(如{{7*7}}),响应里出现 49 基本坐实 SSTI;若应用对模板输出做了过滤,就改用带唯一标记或时间延迟的表达式,通过响应头或时间差判断,Intruder/ssti.fuzz就是为此准备的批量字典。
场景三:文件上传过滤链逐项验证
测试目标:摸清上传过滤在哪一环失效。
对应模块:Upload Insecure Files/。
怎么用:目录按绕过手法分子目录,每个都是真实可复现案例:Extension PHP/下是各种shell.phtml、shell.php5扩展名变体,用于判断是否只拦了.php后缀;Picture Compression/下有createPNGwithPLTE.php这类生成脚本,可以造出被压缩工具"洗白"后仍保留 payload 的图片,配合 LFI 验证二次解析。测之前建议先看该模块的思维导图,确定目标应用属于哪条绕过路径,避免盲目逐条试。

这张思维导图把文件上传的攻击面展开成完整地图:Web Shell 扩展名、SVG/图片伪装、音视频元数据、过滤绕过四个分支一目了然,测试前先对照它确认目标属于哪条路径,比直接翻 payload 文件效率高得多。
工具组合实战:把 payload 接入你的常规流程
- Burp Suite Intruder 批量探测:Intruder 目录的 txt 文件直接作为 payload 字典导入。跑完不要只看 200/500,要对照模块 README 里的判断标准(响应长度差、时间差、回显特征)确认哪些差异是真注入而不是 WAF 误报。
- SQLmap 前后补位:
SQL Injection/SQLmap.md给出了与项目配合的思路——用项目字典做前置探测和 DBMS 识别,再用项目的 WAF 绕过章节处理 SQLmap 被拦截的场景,两边互补而不是二选一。 - 最小脚本回归测试:写个脚本循环加载 Intruder 字典逐条发请求,记录状态码与响应长度,就能接入 CI 做上传、注入等关键点的回归检查,代码量很小但省掉每次手工重测。
红蓝双视角:攻击内容反哺防御
防御侧可以拿这套攻击 payload 直接做三件事。
第一,把 Intruder 字典转成检测规则:从字典反推特征正则,喂给 WAF 和 RASP 做签名规则;项目里连Denial of Service/(Billion Laughs)、Zip Slip/这类非 Web 漏洞都有覆盖,规则覆盖面比单一 WAF 厂商的默认规则集更全。第二,拿Methodology and Resources/Vulnerability Reports.md和各模块 Images 里的响应截图做培训素材——新人对着截图学"正常响应、拦截响应、可利用响应"的差别,比读文字快。第三,把Upload Insecure Files/下所有子目录当作文件类型白名单的测试用例集,逐个跑一遍即可验证生产环境的过滤环节是否真的生效。
常见坑:三个地方最容易白忙
批量测试前必须先手动打一条基准请求,记录正常响应和 404 的响应长度做对照——WAF 拦截页、过滤后的 404、真实注入点三者的响应极易混淆,没基准时很容易把 WAF 的 503 当成功。SSTI 检测依赖唯一标记或时间延迟,别指望页面直接回显 49,响应被吞掉时要看时间差,这是新手最常见的误判点。另外 Intruder 字典里已有的 URL 编码要与请求本身匹配,payload 自身已编码、请求里再编码一次会变成双重编码,全部失效。
这套 payload 库的价值在于把"知道要测什么"压缩到打开对应目录的距离:Intruder 字典让第一轮探测十分钟出结果,README 里的绕过章节让你在被 WAF 拦下时知道下一步往哪走。测完之后,同一批 payload 反过来就是现成的 WAF 规则和培训材料。
本文技术内容仅供学习与授权范围内的安全测试使用,请勿用于未授权目标。
【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考