php-exploit-chain

$npx mdskill add wgpsec/AboutSecurity/php-exploit-chain

Assemble verified PHP vulnerabilities into high-impact exploit chains.

  • Connects confirmed file write, SQLi, and SSRF flaws into attack paths.
  • Depends on EVID evidence from prior audit phases for chain validation.
  • Scores chains using a weighted formula of reachability, impact, and cost.
  • Outputs the shortest path from low-privilege entry to critical sink.

SKILL.md

.github/skills/php-exploit-chainView on GitHub ↗
---
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 已扫描并纳入链评估
- [ ] 链条利用路径已在源码层面完整验证

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|