Multi-CVE Chain Playbook(多 CVE 组合联合利用)
世界级 Web CTF 中,单个 CVE 往往只是一个 primitive。真正的突破通常来自组合:
text
fingerprint -> CVE candidates -> primitive mapping -> chain hypothesis -> staged validation -> flag1. Primitive 分类
| Primitive | 典型 CVE 信号 | 可组合价值 |
|---|---|---|
info_leak | 信息泄露、debug、config exposure | 拿 secret、版本、内网地址 |
file_read | LFI、path traversal、XXE | 读取配置/源码/密钥 |
ssrf | SSRF、URL fetch、webhook | 打内网服务、metadata、admin panel |
auth_bypass | 鉴权绕过、越权、tenant bypass | 进入后台或高权限 API |
xss | admin bot、stored/reflected XSS | 借管理员上下文触发后台功能 |
sqli/nosqli | SQL/NoSQL injection | 凭据、session、数据泄露 |
file_write_upload | 上传/任意写/zip slip | 落脚本、覆盖配置 |
rce | 命令注入、SSTI、反序列化、代码注入 | 最终执行或 flag 读取 |
2. 常见组合模式
A. Info Leak -> Auth Bypass -> RCE
- CVE-1 泄露
.env/ config / JWT secret / API key。 - CVE-2 用 secret 伪造 token 或绕过权限。
- CVE-3 在后台触发 RCE、插件安装、模板编辑、任务执行。
B. File Read -> Secret -> RCE
- 任意文件读拿配置。
- 读取数据库密码、Redis 密码、JWT secret、Spring actuator token。
- 进入管理面或签名 payload,触发 RCE。
C. SSRF -> Internal Service -> RCE
- SSRF 证明 DNS/HTTP/redirect/scheme 能力。
- 探测内网:
127.0.0.1、Docker bridge、metadata、admin port。 - 对内网服务打第二个 CVE,例如 Redis、Solr、Elasticsearch、GeoServer、Jenkins。
D. XSS/Admin Bot -> Privileged Action -> RCE
- XSS 触发 admin bot。
- 读取 cookie/localStorage/CSRF token 或让管理员发起后台请求。
- 进入后台导入模板、插件、文件写入或 RCE CVE。
E. Upload/File Write -> Interpreter -> RCE
- 上传绕过或任意文件写。
- 找解析路径:JSP/PHP/模板/配置/cron。
- 与路径穿越、Nginx alias、Tomcat manager、Spring static path 组合。
3. AI 自动化命令
powershell
# 查询多个 CVE
python scripts\ctf-website\cve_lookup.py CVE-2024-36401
# 从产品/版本指纹自动拉候选 CVE、生成图和链
python scripts\ctf-website\fingerprint_cve_pipeline.py --fingerprints cases\<case>\fingerprints.json
# 生成 CVE 关系图
python scripts\ctf-website\cve_graph.py --from-dir reports\ctf-website\cve --out reports\ctf-website\cve-graph
# 生成多 CVE 组合链候选
python scripts\ctf-website\cve_chain_planner.py --from-dir reports\ctf-website\cve --out reports\ctf-website\cve-chain4. 验证纪律
- 先验证版本和前置条件,再验证 payload。
- 每条链只改一个变量,避免把失败归因搞乱。
- 链路中每个 primitive 都要有证据:request/response、截图、日志、文件内容、命令输出。
- 不要因为 CVE 热门就盲打;目标组件必须真实存在且受影响。
- 如果链路断在某一步,回到上一个已验证 primitive,不要继续假设后续成立。
5. Case 记录
把链路写入:
cases/<case>/findings.mdcases/<case>/timeline.mdreports/ctf-website/<case>/
推荐模板:
templates/cases/cve-chain.md
MCP 工具映射
AI Agent 可调用以下 MCP 工具自动完成或加速上述攻击步骤:
| 攻击步骤 | MCP 工具 | 说明 |
|---|---|---|
| CVE 链知识检索 | kb_router | 按多 CVE 链信号搜索知识库 |
| 漏洞验证探测 | http_probe | HTTP GET 探测验证各 CVE 步骤 |
工作流
产品与版本指纹 → 受影响范围核对 → 前置条件证明 → PoC 去噪适配 → 最小副作用验证 → 干净状态重放。