Payload速查:从仓库到Burp跑通Web安全测试 Payload速查从仓库到Burp跑通Web安全测试【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings上线前想快速过一遍搜索参数和上传接口PayloadsAllTheThings 是一个按漏洞类型组织的 Web 应用安全 payload 集合每个目录下都备好了 payload 清单和绕过手法其中Intruder子目录里的文件可以直接丢进 Burp 当 fuzz 字典用。️ 第一次打开仓库30 秒定位你要的 payload 目录你肯定也遇到过这种情况要找某个漏洞的测试 payload结果在博客、工具文档、收藏夹里翻了三四十分钟。这个仓库把这个问题用目录结构解决了。根目录下的每个文件夹就是一种漏洞类型比如SQL Injection/、Upload Insecure Files/、Directory Traversal/而每个文件夹内部都是同一套固定结构README.md讲原理和手法Intruder/放现成的 payload 列表Files/放 README 里引用到的附加文件Images/是配图。如果你只做一件事以后找任何漏洞的测试素材先直奔该目录下的Intruder/子目录。这里的 txt 文件不用加工一行一条 payload导入工具就能跑是最即取即用的部分。README 留给你想搞懂原理的时候再看。知道了东西在哪我们跟一遍一个具体的 SQL 注入测试流程。 跟一遍 SQL 注入测试从控制样本到编码变体假设你手上有个?id1的搜索参数。取SQL Injection/Intruder/Generic_Fuzz.txt的前几行内容是1、1、1、[1]、1 or 11。注意这里的设计第一条1是未改动的原始值作为对照样本第二条1才加单引号。你发出去看响应有没有变化有变化说明入口存在没有变化也说明问题出在探测阶段而不是后面——先放对照组这件事在 fuzz 列表里很容易忽略没有它你分不清是没漏洞还是payload 没写对。确认入口之后下一步通常是应对字符过滤。下面这张图演示的是把引号换掉![SQL注入Unicode编码绕过引号过滤](https://raw.gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings/raw/5443cbde384134094f25b1b440695757a2803d55/SQL Injection/Images/Unicode_SQL_injection.png?utm_sourcegitcode_repo_files)这张图里最值得注意的不是编码本身而是右侧的对照列同一个11引号被替换成%EF%BC%87之后语义不变但黑名单规则匹配不到了。README 的 Entry Point Detection 一节列的变体更多从%27这种常规 URL 编码到%%2727二次编码再到U02BA这类 Unicode 修饰符字符都是同一个思路找到过滤器不认识、数据库却认得的等价写法。单条试通之后把整个列表放进工具里跑就是 Intruder 的用法了。 把 payload 列表接进 Burp 的工作流Intruder/目录就是整个仓库的弹药库而且每个列表都按由浅入深排好序了。拿Directory Traversal/Intruder/directory_traversal.txt举例前几行是原始路径\..\..\WINDOWS\win.ini往后是%5c%2e%2e单重编码版本再往下是%%35%63%%32%65这种双重编码版本。最容易忽略的细节就在这——同一条路径给了三层编码因为有些 WAF 只解码一次就放行能真正打穿目标往往是最深的那层。文件上传场景同理。Upload Insecure Files/模块下的Extension PHP/extensions.lst把 PHP 的可用后缀从.php、.pht一直排到.pgif再往下是.php%00.gif这种空字节截断的旧式写法新旧手法在一个文件里排好了序。整个模块的攻击路径可以对着这张思维导图过一遍![文件上传漏洞测试路径思维导图](https://raw.gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings/raw/5443cbde384134094f25b1b440695757a2803d55/Upload Insecure Files/Images/file-upload-mindmap.png?utm_sourcegitcode_repo_files)这张思维导图里最容易被忽略的是图片压缩和元数据这两个分支多数人只记扩展名绕过忘了服务端如果开了图片压缩会直接改写文件、或者上传的元数据本身可以藏 payload。如果你只有一条时间预算导入字典之前先对照目标已知的过滤规则删掉肯定会被拦的条目。几百行的精简列表比一千行的全量列表快也省代理流量。当然发出去之后被 WAF 拦下才是常态这时有固定的排查路径。 被 WAF 拦了先看哪里SQL Injection/README.md里有个专门的小节叫 No Space Allowed处理的是空格被禁这种常见拦法用%09tab、%0A换行、%A0不间断空格替换空格README 还附了一张各数据库认哪些空白字符的对照表——SQLite 只认0A 0D 0C 09 20MySQL 5 多认一个0B和A0。另一条路是用注释切分关键词比如1/*comment*/AND/**/11/**/--语义完整但每个词都被拆开了。这两节的共同点就是排查的核心思路过滤器只针对特定字符集你要做的不是造新 payload而是列出数据库认可的等价写法集合再从中挑过滤器没覆盖的那个。想死记硬背反而记不住理解了等价集合这个概念换到别的漏洞上同样适用。如果目标不止一个接口测试清单要按业务面反推。比如详情、订单这类带 id 参数的接口直接对照 IDOR 模块里的示例过![IDOR接口越权测试示例](https://raw.gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings/raw/5443cbde384134094f25b1b440695757a2803d55/Insecure Direct Object References/Images/idor.png?utm_sourcegitcode_repo_files)这张图展示的就是最短验证路径拿一条自己的详情请求把 id 换成别人的再发一次对比两次响应的差异。这类单接口验证的动作每个模块的 README 里基本都给了现成示范照着改参数就行。带着它去干活今晚就可以把仓库拉到本地命令是git clone https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings然后拿你手头项目的上传接口对照Upload Insecure Files/Extension PHP/里的清单逐个过一遍。PayloadsAllTheThings 把分散在各处的测试 payload 收敛成了一套可按漏洞类型检索、可直接导入工具的目录结构你的工作只需要集中在验证和解读上。本文内容仅适用于获得授权的安全测试与学习目的请勿在未经授权的系统上使用文中 payload。【免费下载链接】PayloadsAllTheThingsA list of useful payloads and bypass for Web Application Security and Pentest/CTF项目地址: https://gitcode.com/GitHub_Trending/pa/PayloadsAllTheThings创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考