php-audit-pipeline

$npx mdskill add wgpsec/AboutSecurity/php-audit-pipeline

Execute five-phase PHP white-box security audits with evidence-backed findings.

  • Identify unauthenticated routes and insecure data sinks in PHP code.
  • Depends on framework route files and authentication middleware configurations.
  • Validates every vulnerability claim against source-to-sink data flow evidence.
  • Outputs structured audit reports with vulnerability scores and exploitation chains.

SKILL.md

.github/skills/php-audit-pipelineView on GitHub ↗
---
name: php-audit-pipeline
description: |
  PHP 白盒源码安全审计总方法论。当需要对 PHP 项目进行完整的源码安全审计、
  或需要系统化的白盒漏洞挖掘流程时触发。
  覆盖 5 阶段审计流水线: 路由映射→权限建模→数据流追踪→分类漏洞审计→利用链组装。
  核心机制: 证据合约系统(EVID_*)防止 AI 幻觉误报,所有漏洞结论必须有数据流证据支撑。
metadata:
  tags: php audit, code audit, 代码审计, white box, 白盒, source code, 源码审计, pipeline, evidence contract, 证据合约, route mapping, data flow, sink, source, php security
  category: code-audit
---

# PHP 白盒审计总方法论
白盒审计在源码层面发现漏洞,关注"代码为什么不安全"。发现漏洞后的实际利用技术(构造 payload、绕过 WAF)属于黑盒 exploit skill 范畴。

## 深入参考

- 证据合约系统与评分公式 → [references/evidence-contract.md](references/evidence-contract.md)
- PHP 危险函数分类速查 → [references/sink-reference.md](references/sink-reference.md)

---

## 审计 5 阶段概览

| 阶段 | 名称 | 核心任务 | 产出物 |
|------|------|----------|--------|
| P1 | 路由映射 | 解析所有入口点及其参数 | 路由清单 |
| P2 | 权限建模 | 分析认证/授权,标记裸露路由 | 权限矩阵 |
| P3 | 数据流追踪 | Source→Sink 完整路径追踪 | EVID_* 证据集 |
| P4 | 分类审计 | 按 Sink 类型深入检查 | 漏洞清单 |
| P5 | 报告组装 | 评分 + 利用链编排 | 审计报告 |

## Phase 1: 路由映射与入口点识别

解析框架路由配置,建立完整的攻击面清单:
- **Laravel**: `routes/web.php` + `routes/api.php`,关注 `Route::any` 和资源路由
- **ThinkPHP**: `config/route.php` + 控制器自动路由(注意版本差异,TP5 默认开启自动路由)
- **原生 PHP**: 扫描所有可直接访问的 `.php` 文件,识别 `$_GET/$_POST/$_REQUEST` 入口

产出: 路由清单,每条记录包含路径、Handler 方法、接受参数、是否需认证。

## Phase 2: 权限建模与认证审查

分析中间件/拦截器的挂载范围,找出哪些路由缺少认证保护:
- 未认证即可访问的路由标记为高优先级审计目标
- 审查全局过滤器(如 `addslashes`、自定义 WAF 类)的实际覆盖范围和绕过可能
- 检查 Session 配置、CSRF token 机制、密码存储方式

## Phase 3: 数据流追踪(Source → Sink)

这是白盒审计的核心阶段。每条潜在漏洞路径都要产出 EVID_* 证据点(详见 evidence-contract.md)。

**三层分析法**:
1. **面** — 全局关键字扫描: 搜索 Sink 函数(参考 sink-reference.md),快速定位危险代码区域
2. **线** — 逐行追踪变量流: 从 Sink 反向追溯到 Source,记录每一步的变量传递和过滤操作
3. **点** — 验证利用条件: 确认过滤是否可绕过、参数是否可控、执行路径是否可达

当无法追踪到完整的 Source→Sink 路径时,只能标注为"待验证"。缺少任何一个环节的证据都不能标"已确认"。

## Phase 4: 分类漏洞审计

按 Sink 类型分派到对应子 skill 进行深入审计:
- 注入类(SQL/CMD/LDAP/表达式)
- 文件类(读取/包含/上传/写入/归档)
- 前端类(XSS/CSRF/重定向/CRLF)
- 序列化类(反序列化/XXE)
- 认证配置类(越权/弱加密/信息泄露)
- 框架特定漏洞(已知 CVE、框架配置缺陷)

## Phase 5: 报告与利用链组装

**严重度评分**: `Score = R * 0.40 + I * 0.35 + C * 0.25`(R=可达性, I=影响范围, C=利用复杂度,各 0-3 分)

将同一目标上的多个漏洞组合为利用链(如: 信息泄露→认证绕过→文件写入→RCE)。

## 审计质量检查清单

- [ ] 所有公开路由均已纳入路由清单
- [ ] 未认证路由已全部标记并优先审计
- [ ] 每个"已确认"漏洞都有完整的 EVID_* 证据链
- [ ] 全局过滤器的绕过可能性已评估
- [ ] 框架版本已确认,已知 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|