Back to skills
SKILL.md
Php Exploit Chain
ASecurityPHP 审计漏洞链组装方法论。当已完成各分类漏洞审计、需要评估多个漏洞组合利用的可行性时触发。 覆盖: 文件写入→文件包含→RCE 链、反序列化→敏感操作链、SQL 注入→文件写入链、 SSRF→内部服务链、信息泄露→权限提升链。同时包含 Composer 依赖 CVE 扫描方法。
- 2 stars
- 0 votes
- 0 copies
- 1 view
- Added October 17, 2026
Security analysis
100/100npx -y skills add NetVar1337/agent-skill-canon --skill php-exploit-chain --agent claude-codeAre you the author of Php Exploit Chain?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/netvar1337-php-exploit-chain)---
name: php-exploit-chain
description: |
PHP 审计漏洞链组装方法论。当已完成各分类漏洞审计、需要评估多个漏洞组合利用的可行性时触发。
覆盖: 文件写入→文件包含→RCE 链、反序列化→敏感操作链、SQL 注入→文件写入链、
SSRF→内部服务链、信息泄露→权限提升链。同时包含 Composer 依赖 CVE 扫描方法。
metadata:
tags: exploit chain, 利用链, vulnerability chaining, pop chain, file write to rce, 漏洞组合, composer, dependency, cve scan, supply chain
category: code-audit
---
# PHP 审计漏洞链组装方法论
本 skill 是审计流水线 Phase 5 的核心环节。各分类审计 skill 产出独立漏洞清单后,在此评估多个漏洞组合利用的可行性,将单点漏洞串联为完整攻击路径。
## 链组装前提
- 各子审计(P4 阶段)已完成,漏洞清单已产出
- 每个"已确认"漏洞均附有完整的 EVID_* 证据(Source→Sink 路径、可控参数、过滤状态)
- 缺少 EVID 证据的漏洞不参与链组装,只能标注为"潜在链节点"
---
## 常见利用链模式
| # | 入口漏洞 | 中间跳板 | 最终效果 | 严重度 |
|---|----------|----------|----------|--------|
| 1 | 文件写入(任意内容) | `include`/`require` 路径可控 | RCE | Critical |
| 2 | SQL 注入 | `INTO OUTFILE` / `DUMPFILE` | Webshell 落地 | Critical |
| 3 | 反序列化入口 | POP Gadget 链 | 任意操作(文件写/命令执行) | Critical |
| 4 | SSRF | 内部未认证服务(Redis/FastCGI) | RCE / 数据泄露 | High-Critical |
| 5 | 信息泄露(密钥/盐值) | 伪造签名 / 解密 Token | 认证绕过 | High |
| 6 | XSS(存储型) | CSRF Token 窃取 | 管理员操作劫持 | High |
## 链组装流程
1. **收集已确认漏洞** — 汇总所有子审计产出,仅纳入 EVID 证据完整的条目。按漏洞类型标注其"输出能力"(可写文件、可发请求、可泄露数据、可执行代码)
2. **构建漏洞关系图** — 判断每个漏洞的输出是否可作为另一漏洞的输入(文件写入路径→文件包含路径、信息泄露内容→认证伪造密钥、SSRF 可达范围→内部服务地址)
3. **寻找 Source→Sink 链对** — 沿关系图搜索从低权限入口到高影响 Sink 的最短路径,优先关注无需认证的入口点
4. **验证链条前置条件** — 逐步确认: 认证要求(权限断层)、网络可达(目标网段)、时序依赖(文件清理/Session 过期)、环境约束(`open_basedir`/`disable_functions`/`secure_file_priv`)
5. **计算链严重度** — `Score = R * 0.40 + I * 0.35 + C * 0.25`(与 pipeline 一致),链条取最弱环节的 R/I/C 值,任何一步不可达则整条链不成立
## 各链模式详细条件
**文件写入 + include → RCE**: 写入路径必须在 `include_path` 或 Web 根目录下;写入内容必须包含可控的 PHP 代码片段;`include`/`require` 的路径参数必须可控或可预测(如固定日志路径)。
**SQL 注入 + INTO OUTFILE → Webshell**: 数据库用户需具备 `FILE` 权限;`secure_file_priv` 必须为空或包含 Web 目录;写入路径必须 Web 可直接访问;目标文件不能已存在(`OUTFILE` 不覆盖)。
**反序列化 + POP 链 → 任意操作**: 用户可控数据到达 `unserialize`/`phar://` 触发点;项目或 Composer 依赖中存在可用的 Gadget 类;`__destruct`/`__wakeup` → 危险 Sink 的调用链完整可达。
**SSRF + 内部服务 → RCE/数据泄露**: `gopher://` 或 `http://` 协议可用(未被 `CURLOPT_PROTOCOLS` 限制);目标内部服务无认证(Redis 无密码、FastCGI 无访问控制);响应可回显或支持盲利用(DNS/延时)。
**信息泄露 + 伪造签名 → 认证绕过**: 泄露的密钥为实际签名密钥(非测试值);签名算法已知且可本地复现;伪造的 Token/Cookie 在有效期内且未被吊销机制拦截。
**XSS + CSRF → 管理员操作劫持**: XSS 为存储型或可持久触发;目标管理页面无独立 CSRF Token 或 Token 可通过 XSS 读取;关键操作(添加管理员/修改配置)无二次确认。
## Composer 依赖审计
- 解析 `composer.lock` 获取所有直接 + 间接依赖的精确版本号
- 比对 [Packagist Security Advisories](https://packagist.org/advisories) 和 CVE 数据库(NVD/GitHub Advisory)
- 重点关注间接依赖(`require` 的包所依赖的包)中的已知漏洞 — 开发者往往忽略
- 工具辅助: `composer audit`(Composer 2.4+)、`local-php-security-checker`
- 发现的依赖 CVE 同样纳入利用链关系图,评估是否可与业务漏洞串联
## 链不可行时的报告要求
当链条无法成立时,必须明确说明断裂点:
- 具体哪一步的前置条件不满足(如 `secure_file_priv` 限制了写入路径)
- 该条件是否可能在其他环境/配置下成立(标注为"环境依赖")
- 是否存在替代路径绕过该断裂点
## 检测清单
- [ ] 所有已确认漏洞已汇总,EVID 证据完整性已复核
- [ ] 漏洞关系图已构建,输出→输入对应关系已标注
- [ ] 每条可行链的前置条件已逐步验证
- [ ] 环境约束(`open_basedir`/`disable_functions`/`secure_file_priv`)已确认
- [ ] 链严重度已按最弱环节计算,评分与 pipeline 一致
- [ ] 不可行链条已标明断裂点和原因
- [ ] Composer 依赖 CVE 已扫描并纳入链评估
- [ ] 链条利用路径已在源码层面完整验证
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.