JonnyRiga/TTPX

GitHub: JonnyRiga/TTPX

一款离线优先的 CLI 安全工具,整合 HackTricks 和 PayloadsAllTheThings 知识库检索、AI 辅助 payload 生成与 CSRF PoC 构建于一体。

Stars: 1 | Forks: 0

# TTPX — Tactics, Techniques, Payloads & Exploits ![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg) 搜索 [HackTricks](https://github.com/HackTricks-wiki/hacktricks) 和 [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings) 获取利用技术,获取 AI 生成的 payload,并从原始捕获的请求生成 CSRF PoC —— 完全免费、离线优先且基于 CLI。 ## 为什么会有这个项目 TTPX 将通常需要付费工具才能实现的功能整合到一个免费且单一的 CLI 工作流中。 总体上最接近的比较对象是 SearchSploit —— 具有相同的离线优先、基于终端的体验 —— 但 SearchSploit 只索引 Exploit-DB 的 CVE。TTPX 则更进一步,它可以搜索本地的 HackTricks/PATT 知识库,并支持 AI 辅助的 payload 生成。 它的 CSRF PoC 生成器涵盖了通常被锁定在 Burp Suite Pro 或 Caido 等付费平台背后的功能 —— 并且能与 csrfshark 等免费工具相媲美 —— 同时保持完全基于 CLI 且离线优先的特性。支持所有主要请求类型(form、JSON、multipart 和 GET),具有 HTML 注入防护、离线 token 检测以及可选的 AI 驱动的绕过分析。 唯一的成本在于,如果用户选择连接 Claude API 密钥用于 AI payload 生成 —— 其他所有功能开箱即用,完全离线且免费。 ## 安装 ``` git clone https://github.com/JonnyRiga/ttpx ~/Tools/ttpx-repo # 工具位于 ~/Tools/ttpx.py,已软链接至 /usr/local/bin/ttpx ``` **依赖项:** ``` pip install anthropic rich ``` **知识库**(克隆一次,永久搜索): ``` git clone https://github.com/HackTricks-wiki/hacktricks ~/Tools/hacktricks git clone https://github.com/swisskyrepo/PayloadsAllTheThings ~/Tools/payloadsallthethings ``` **API 密钥**(仅在 `-p` 和 `--bypass` 时需要): ``` echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.zshrc && source ~/.zshrc ``` **手册页**(可选): ``` sudo cp ttpx.1 /usr/local/man/man1/ttpx.1 && sudo mandb ``` ## 用法 ``` ttpx -l [--since Nd] ttpx -u ttpx -f TERM [TERM ...] ttpx -p TERM [TERM ...] [-d CONTEXT [-d CONTEXT ...]] [--no-log] ttpx -m PATH [-s TERM] ttpx --csrf FILE [--bypass] ``` ### `-l` / `--list` — 浏览分类(无需输入词条) 列出两个数据源中的所有顶级目录。当你还不知道要搜索什么时,请使用此命令。添加 `--since Nd` 可筛选过去 N 天内更新的分类 —— 在刚执行 `-u` 后非常有用。 ``` ttpx -l ttpx -l --since 7d # categories with commits in the last 7 days ``` ``` [hacktricks] [payloadsallthethings] ──────────────────────── ────── ─────────────────────────── ────── Network Services 12 Command Injection 8 Pentesting Web 47 File Inclusion 11 Reversing 5 Server Side Template Injection 9 ... SQL Injection 14 47 categories 31 categories ``` ### `-u` / `--update` — 拉取最新数据(保持 payload 最新) 在两个知识库上运行 `git pull` 并显示更改内容。请在开始安全测试前运行此命令。 ``` ttpx -u ``` ``` Updating HackTricks... HackTricks: updated 12 files changed, 340 insertions(+), 18 deletions(-) Updating PayloadsAllTheThings... PayloadsAllTheThings: already up to date ``` ### `-f` / `--find` — 浏览(不调用 Claude,无开销) 搜索两个数据源并显示清晰的表格。使用此选项可在生成 payload 或获取文件之前查看存在哪些内容。 ``` ttpx -f ssti handlebars ttpx -f lfi php windows ttpx -f sqli union mysql ``` ``` Searching HackTricks + PayloadsAllTheThings... Source Title Path ───────────────────────────────────────────────────────────────────── [hacktricks] SSTI (Server Side Template src/pentesting-web/... [payloadsallthethings] Handlebars Server Side Template... 2 result(s) ``` ### `-p` / `--payload` — 生成 payload (Claude) 搜索两个数据源,将发现的结果发送给 Claude,获取最具影响力的单个 payload —— 按语言进行语法高亮并附带建议。 ``` ttpx -p ssti handlebars groovy rce ttpx -p sqli union mysql ttpx -p xss csp bypass reflected ttpx -p lfi php windows iis read ttpx -p log4shell jndi rce java ``` ``` Searching HackTricks + PayloadsAllTheThings... Sending findings to Claude... ──────────────── SSTI via Handlebars (Node.js) ──────────────── Technique: Handlebars allows access to the JS prototype chain... Payload (JavaScript) {{#with "s" as |string|}} {{#with "e"}} {{#with split as |conslist|}} ... {{/with}} {{/with}} {{/with}} ── copy-paste ── {{#with "s" as |string|}} ... {{/with}} ★ Most impactful: gives direct RCE via constructor chain traversal. Source: [hacktricks] src/pentesting-web/ssti/README.md ``` 语法高亮块仅供阅读;其下方的 `── copy-paste ──` 块是没有任何终端格式的原始 payload —— 可以安全地选中并直接粘贴。 ### `-d` / `--details` — 在尝试失败后进行调整 反馈上一次 `-p` 尝试的错误或上下文。Claude 会分析失败原因,生成修正后的 payload,并添加一个 **What changed** 部分,精确显示与前一次尝试相比修改了哪些 token 或行。重复使用 `-d` 可以链接多次尝试中的多个错误上下文。 ``` ttpx -p ssti handlebars groovy rce -d "'require' is not defined" ttpx -p sqli union mysql -d "WAF blocking SELECT and UNION keywords" ttpx -p lfi php -d "../etc/passwd filtered, got 403" -d "double-encoded also blocked" ``` ### `--no-log` — 跳过会话记录 每次 `-p` 调用都会向 `~/Tools/ttpx-session.log` 追加一个带有时间戳的条目(包含词条、漏洞、第一行 payload)。传递 `--no-log` 可以禁止特定调用的记录。 ``` ttpx -p xss reflected --no-log ``` ### `-m` / `--mirror` — 将文件抓取到当前工作目录 将 `-f` 结果中的文件作为纯文本(去除 markdown 标记)复制到当前目录。路径必须与 `-f` 输出完全匹配 —— 包含空格的路径请加引号。 ``` ttpx -m "Server Side Template Injection/JavaScript.md" # full file ttpx -m "Server Side Template Injection/JavaScript.md" -s handlebars # section only ``` 使用 `-s` / `--section` 可以仅提取标题与词条匹配的章节,并在遇到同等或更高级别的标题时停止提取。如果未找到该章节,则回退到完整文件。 ``` ttpx -m "File Inclusion/README.md" -s lfi ttpx -m "SQL Injection/README.md" -s mysql ``` ### `--csrf` — 生成 CSRF PoC(离线) 解析原始的 HTTP 请求文件(从 Burp Suite 或 Caido 复制),并在当前目录生成一个独立的 `csrf_poc.html` 文件。无需 API 调用。PoC 类型会根据 Content-Type 自动选择: | 请求 | PoC | |---|---| | GET | 自动提交的 `
`,包含隐藏输入(SameSite 安全) | | POST `application/x-www-form-urlencoded` | 自动提交的 ``,包含隐藏输入 | | POST `application/json` | 带有 `credentials: include` + CORS 提示的 `fetch()` | | POST `multipart/form-data` | `FormData` fetch 骨架(手动填充字段) | ``` ttpx --csrf req.txt # generate csrf_poc.html ttpx --csrf req.txt --bypass # PoC + Claude bypass analysis ``` `req.txt` 是从 Burp/Caido 复制的原始请求 —— 包含请求行、请求头、空行和请求体。 生成 PoC 后,ttpx 会自动检查请求中是否存在已知的 CSRF token 字段和请求头(包含 form 编码的请求体、JSON 请求体以及请求头),如果发现任何匹配项将发出警告 —— 无需 API 调用。覆盖的常见框架包括 Django、Rails、ASP.NET、Laravel、WordPress 和 Ant Design,以及几个常见的请求头(`X-CSRF-Token`、`X-XSRF-Token`、`X-CSRFToken`、`X-Request-Token`、`X-Ant-CSRF-Token`)。当 `Content-Type` 请求头缺失时,只要请求体中存在 `=`,该启发式算法也会对 form 编码的请求体生效。 `--bypass` 调用 Claude(需要 `ANTHROPIC_API_KEY`)并添加绕过分析部分。离线 token 检测的结果会直接传入 prompt,因此 Claude 会跳过重新检测,直接进入策略分析: - **发现 Token** → 重点关注 token 剥离/预测、通过 CORS/XSS 泄露、Content-Type 篡改、方法重写 - **未发现 Token** → 重点关注 SameSite 执行情况、Origin/Referer 验证、Content-Type 限制,以及离线 PoC 是否已经足够 当离线 PoC 失败并且你想让 Claude 分析是什么阻止了攻击时,请使用 `--bypass`。 ## 工作流 ``` # 0. 在 engagement 前保持 sources 最新 ttpx -u # 1. 不知道搜什么?先浏览 categories ttpx -l # 2. 查看存在哪些 content ttpx -f ssti handlebars # 3. 抓取相关 section 以供离线阅读 ttpx -m "Server Side Template Injection/JavaScript.md" -s handlebars # 4. 生成 payload ttpx -p ssti handlebars groovy rce # 5. 遇到 error?将其反馈 ttpx -p ssti handlebars groovy rce -d "sandbox active, require not available" ``` 更具体的词条 = 匹配的文件更少 = 更聚焦的 payload + 更低的 API 成本。 如果 `-p` 未返回任何结果,请减少一个词条。 ## 法律声明 TTPX 是一款研究和参考工具 —— 它搜索本地知识库并生成 payload,但不会向任何目标发起网络连接。您对如何使用其输出结果承担全部责任。TTPX 生成的 payload 和 PoC 仅限用于经授权的安全测试。 ## 成本 每次 `-p` 调用大约花费 **$0.001–$0.005** (claude-sonnet-4-6,约 200-500 token 输出)。`--csrf --bypass` 大约花费 **$0.001–$0.002**(约 200-400 token 输出)。`-f`、`-m` 和 `--csrf`(不带 `--bypass`)完全免费。 ## 手册页 ``` man ~/Tools/ttpx.1 ``` ## 测试 ``` cd ~/Tools && python -m pytest tests/test_ttpx.py -v ```
标签:AI安全, Chat Copilot, CSRF PoC, Exploit, HackTricks, PayloadsAllTheThings, Payload生成, Python, SEO检索词, Web安全, 反取证, 域名收集, 安全测试, 安全评估, 提示词注入, 搜索引擎, 攻击性安全, 数据展示, 无后门, 渗透测试框架, 离线工具, 红队, 网络信息收集, 网络安全, 网络安全研究, 蓝队分析, 逆向工具, 防御, 隐私保护