Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Payload-and-Polyglot-Lists — GromHacks Labs -- 那些他们不想让你拥有的 payload 列表。母舰降下 1,324 个注入探测,检测 20 种常见漏洞类别的可注入点。我们不利用漏洞,只是敲门看看谁会在里面回应。每个 payload 都经过真实解析器测试,因为外星人要求证据。不要信任任何输入。质疑一切! | Kitploit
工具/GitHubGitHub/gromhacks/payload-and-polyglot-lists
OSINT (开源情报)Payload生成漏洞分析Web应用程序漏洞利用模糊测试渗透测试学习与教育
GitHubgromhacks/payload-and-polyglot-lists

Payload-and-Polyglot-Lists

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GromHacks Labs -- 那些他们不想让你拥有的 payload 列表。母舰降下 1,324 个注入探测,检测 20 种常见漏洞类别的可注入点。我们不利用漏洞,只是敲门看看谁会在里面回应。每个 payload 都经过真实解析器测试,因为外星人要求证据。不要信任任何输入。质疑一切!

查看仓库
369125个月前Kitploit 审核通过

Payload 与 Polyglot 列表

发现一个不起作用的 payload? 请 open an issue 附上 payload、目标上下文以及你期望的结果。欢迎提交修复或新 payload 的 Pull Request。

研究正在进行中。 该项目正在积极开发中,并将定期更新新的 payload、漏洞类别和验证改进。

免责声明: 这些 payload 仅供授权安全测试、教育和研究目的使用。作者对任何滥用或下游影响不承担任何责任。完全由使用者自行承担风险。使用本项目即表示您对自己的行为承担全部责任。

许可证: MIT - 参见 LICENSE

1,353 个经过验证的注入 payload,覆盖 20 个漏洞类别、31 个反序列化框架和 14 个模板引擎。每个 payload 都能产生可检测的信号。零理论 payload。

验证:1,353 测试 / 1,353 触发 / 0 失败 / 0 跳过,针对 35 个 Docker 测试环境栈。严格验证证明了实际利用(服务器端计算、真实解析器错误、测量的时间延迟、来自目标容器的 OOB 回调)——而非字符串匹配。


概念

传统 Payload 列表的问题

大多数公开可用的 payload 列表按漏洞类型组织:一个用于 SQL 注入的列表,另一个用于 XSS,又一个用于命令注入,等等。测试人员选择他们认为与目标匹配的列表,将其加载到入侵工具中,并对一个参数运行。如果他们猜错了漏洞类别,整个扫描就不会产生任何结果。如果后端是一个不常见的数据库、非标准的模板引擎或列表没有考虑到的语言,这些 payload 就会静默失败。测试人员就会认为该参数是安全的,然后继续前进。

这种方法有两个根本性问题。首先,它要求测试人员在发现漏洞之前就知道存在什么漏洞。其次,大多数流传的 payload 都是理论性的——在项目和博客文章之间复制,从未经过真实解析器的测试。它们看起来正确。它们甚至可能在语法上有效。但它们实际上不会触发来自目标的可检测响应。

Polyglot 优先,信号保证

本项目采用不同的方法。主要工作单元是 polyglot——一个单一的 payload 字符串,被设计成同时在尽可能多的注入上下文中有效(或有意义的无效)。一个 polyglot 可以同时跳出单引号、双引号、括号、块注释、HTML 属性、模板分隔符和反引号上下文。测试人员无需知道漏洞是什么,只需对每个参数发射 polyglot 并观察信号。

此集合中的每个 payload 都围绕 检测支柱 构建——这些是可观察到的响应,确认漏洞存在,无需访问服务器日志、源代码或文件系统:

  • 错误:payload 导致后端抛出异常、解析器错误或响应中可见的堆栈跟踪。
  • 数学:payload 包含算术表达式如 7*191,计算结果为 1337。如果该数字出现在响应中,而 payload 只发送了 7*191(而非字面上的 1337),则说明后端计算了该表达式——代码执行的证据。
  • 时间:payload 强制延迟(5 秒以上)。如果响应缓慢,则后端执行了睡眠或 CPU 密集型操作。
  • OOB(带外):payload 强制后端向测试人员控制的回调服务器发起出站 HTTP、DNS、LDAP 或 TCP 连接。即使响应完全不透明,也能确认执行。

如果一个 payload 在针对其目标上下文测试时没有产生至少一个这样的信号,它就不属于这个列表。这里的 1,353 个 payload 中的每一个都已在专门构建的 Docker 测试床上进行了验证,并带有严格的利用证明。零个是理论性的。

内置函数优于 Shell 命令

传统的 OOB 和时间 payload 依赖 shell 命令:curl、nslookup、ping、sleep。这些命令经常失败。它们依赖于目标操作系统、可用的 PATH、哪个 shell 解释该命令,以及进程是否有权限生成子进程。一个在 Ubuntu 上工作的基于 curl 的 OOB payload 会在 Alpine 上失败(没有 curl),在 Windows 上失败(没有 curl),在受限容器内部也会失败(无法执行出站进程)。

本项目尽可能用语言原生的内置函数代替 shell 命令。Python payload 使用 urllib.request.urlopen() 和 time.sleep()。Java payload 使用 java.net.URL.openStream() 和 Thread.sleep()。Ruby 使用 Net::HTTP.get() 和 Kernel.sleep。PHP 使用 file_get_contents() 和 sleep()。这些函数存在于其各自语言的每个标准安装中——无需 PATH 查找,无需子进程,无操作系统依赖。

即使在标准库导入可能被阻止的情况下(沙箱 eval、受限 exec),payload 也退回到无需导入的替代方案:用于时间的 CPU 自旋循环(Python 中的 sum(range(500000000)),Node 中的 Atomics.wait())和用于 OOB 的原始套接字连接(__import__('socket').create_connection()、fsockopen()、TCPSocket.new())。

Polyglot 无法触及的地方

并非所有东西都能成为 polyglot。模板引擎使用根本不相容的语法——Jinja2 中的 {{}} 对 ERB 的 <%= %> 毫无意义,两者都不会被解析为 Freemarker 的 ${})。反序列化格式是特定于一个框架的二进制或结构化数据。对于这些类别,本项目使用按引擎划分的 payload,组织在相同的检测支柱系统下,涵盖 7 种语言的 14 个模板引擎和 31 个反序列化框架。

结果是形成了一个单一的语料库,其中 polyglot 处理它们能够处理的上下文(SQLi、OS 命令注入、XSS、代码注入),而专门构建的按引擎 payload 处理其余部分,全部经过验证,全部产生可检测的信号,全部准备好用于逐行注入工具。


最小列表(82 个 Payload)

83 个 payload 覆盖所有 35 个测试环境栈、所有 55+ 个端点,以及每个类别的所有 4 个检测支柱。验证:83 触发 / 0 未触发 / 0 跳过。

每个注入类别在架构允许的情况下都得到错误 + 数学 + 时间 + OOB 覆盖。支持代码执行的反序列化框架(Pickle、PyYAML、jsonpickle、node-serialize、XMLDecoder、.NET Json.NET)获得完整的多支柱覆盖。限于探测的框架(PHP unserialize、Ruby Marshal、SnakeYAML 等)获得基于错误的检测。在切换到完整类别列表进行深入测试之前,对每个参数发射这个最小列表。

Payload 数量类别检测支柱
4SQLierror, math, timing, OOB (跨方言 polyglot)
4SSTIerror, math, timing, OOB (跨引擎 polyglot)
3OS Cmdmath, timing, OOB (跨 shell polyglot)
3代码注入math, timing, OOB (跨语言)
2XSSmath, OOB
2XXE文件读取, OOB
2SSRFerror, OOB
1路径遍历文件读取
2NoSQLmath, error
1EL 注入math
1原型污染math
1CRLF/Headermath
1格式字符串error
1SSImath
2LDAP 注入error, math
3XSLT 注入error, math, OOB
2Elasticsearcherror, math
2Cypher/Neo4jerror, timing
1CouchDBerror
3Groovymath, timing, OOB
41反序列化支持时多支柱,否则仅 error

83 次请求,而非 1,353 次。 在 Burp Intruder 中使用 ready/minimal/payloads-only.txt。


为目标选择正确的 Payload

完整操作指南请参见 HOWTOUSE.md。它将“我正在查看一个参数,应该用什么来测试它?”变成一个可重复的工作流程:

  1. 参数和上下文分析 - 5 个问题(值形状、堆栈指纹、响应可见性、OOB 可用性、WAF),在发射任何 payload 之前就削减类别。
  2. 逐类别“何时怀疑” - 针对所有 20 个类别的详尽、生产导向的提示。每个类别列出真实的 SaaS 功能类型(低代码平台、BI/报告、监控、工作流自动化、SSO、SSRF 抓取器、eval 接收器、邮件模板构建器等)、视觉和行为线索(7*7 返回 49 作为 eval 的泄露信号,{{name}} 渲染为 "Alice" 确认 SSTI,诊断字段泄露 ping 输出,OOB 日志中的 User-Agent 字符串命名抓取器库)、现代栈 ORM 陷阱(Prisma $queryRaw、Rails .order()、Hibernate JPQL concat、Mongoose findOne(req.body)),以及在消耗完整列表之前用于确认怀疑的低成本探测。
  3. 危险序列化字节指纹 - Python、PHP、Java、.NET、Node、Ruby 和 Perl 中 31 个框架的原始魔数和 base64 前缀(rO0AB = Java,AAEAAAD///// = .NET BinaryFormatter,BAg = Ruby Marshal,gASV = Python pickle P4,Tzo/YTo = PHP unserialize 等),附带 16 条快速参考备忘卡和消歧启发式方法。在发射之前对 blob 进行指纹识别,以便加载 5-15 个匹配的 payload,而不是全部 232 个。
  4. 目标提示到类别矩阵 - 从“我看到 id=42 和 JSESSIONID”到“尝试 by-category/sqli.txt + Java 反序列化 + EL 注入,监控 math 支柱”一步到位。
  5. 支柱选择规则 - 在发射之前选择你实际上可以观察到的信号(OOB > math > timing > error > reflected),这样你就永远不会对无法读取的渠道进行盲测。

快速开始```bash

1. Prepare payloads with your callback domain

Replaces {domain} placeholder in all OOB payloads with your server

./tools/payloadctl prepare YOUR_CALLBACK.oastify.com

2. Load into Burp Intruder, ffuf, or any line-by-line injection tool

All output goes to ready/ (gitignored, contains your domain)

运行 `prepare` 后,您可直接使用的文件位于 `ready/full/` 和 `ready/minimal/`,结构对比如下:

| 文件 | 说明 | 数量 |
|------|------|------|
| `ready/minimal/payloads-only.txt` | **精简版——83 个请求,覆盖所有类别** | 83 |
| `ready/full/payloads-only.txt` | 完整列表,每行一个载荷 | 1,353 |
| `ready/full/by-category/sqli.txt` | 仅 SQL 注入 | 211 |
| `ready/full/by-category/ssti.txt` | 仅模板注入 | 206 |
| `ready/full/by-category/deserialization.txt` | 仅反序列化 | 232 |
| `ready/full/by-category/os-cmd-injection.txt` | 仅操作系统命令注入 | 120 |
| `ready/full/by-category/code-injection.txt` | 仅代码注入 | 123 |
| `ready/full/by-category/ssrf.txt` | 仅 SSRF | 156 |
| `ready/full/by-category/path-traversal.txt` | 仅路径遍历 | 113 |
| `ready/full/by-category/xss.txt` | 仅 XSS | 58 |
| `ready/full/by-category/nosql.txt` | 仅 NoSQL 注入 | 32 |
| `ready/full/by-category/format-string.txt` | 仅格式化字符串 | 38 |
| `ready/full/by-category/el-injection.txt` | 仅表达式语言 | 34 |
| `ready/full/by-category/header-crlf.txt` | 仅 CRLF/头部注入 | 17 |
| `ready/full/by-category/prototype-pollution.txt` | 仅原型污染 | 12 |
| `ready/full/by-category/xxe.txt` | 仅 XXE | 11 |
| `ready/full/by-category/ldap-injection.txt` | 仅 LDAP 注入 | 35 |
| `ready/full/by-category/xslt-injection.txt` | 仅 XSLT 注入 | 30 |
| `ready/full/by-category/elasticsearch-injection.txt` | 仅 Elasticsearch | 30 |
| `ready/full/by-category/cypher-injection.txt` | 仅 Neo4j/Cypher | 27 |
| `ready/full/by-category/couchdb-injection.txt` | 仅 CouchDB | 5 |
| `ready/full/by-category/polyglots.txt` | 跨上下文多语言载荷 | 246 |
| `ready/full/by-pillar/error-payloads-only.txt` | 基于错误的载荷 | 324 |
| `ready/full/by-pillar/timing-payloads-only.txt` | 基于时间的(盲注) | 227 |
| `ready/full/by-pillar/oob-payloads-only.txt` | 带外交互回调 | 209 |
| `ready/full/by-pillar/math-payloads-only.txt` | 数学金丝雀(1337) | 182 |
| `ready/full/by-pillar/reflected-payloads-only.txt` | 反射/边界情况 | 374 |
| `ready/full/encoded/url-encoded/payloads.txt` | URL 编码变体 | 1,353 |
| `ready/full/encoded/base64/payloads.txt` | Base64 变体 | 1,353 |
| `ready/full/encoded/json-safe/payloads.txt` | JSON 安全变体 | 1,353 |
| `ready/full/encoded/double-url-encoded/payloads.txt` | 双重 URL 编码 | 1,353 |
| `ready/full/encoded/html-entity/payloads.txt` | HTML 实体编码 | 1,353 |
| `ready/full/encoded/hex-escaped/payloads.txt` | 十六进制转义变体 | 1,353 |
| `ready/full/encoded/unicode-escaped/payloads.txt` | Unicode 转义变体 | 1,353 |

`ready/minimal/` 目录镜像相同结构(按类别、按检测柱、编码),包含精简载荷集。

自定义输出目录:```bash
./tools/payloadctl prepare YOUR_CALLBACK.oastify.com -o /path/to/engagement/payloads

原始模板带有 {domain} 占位符(用于脚本替换)位于 payloads/lists/full/ 和 payloads/lists/minimal/。


检测支柱

每个 payload 至少产生一个以下信号。在您的响应中搜索它们:

下载工具