SuperAPI AI 工具集

php-audit-pipeline

安全与审计

查看项目

更新于 10-15 11:43

技能介绍

用途

php-audit-pipeline 是一个 PHP Web 全链路白盒代码安全审计流水线(多文件版编排)。它作为总编排参考,按 Sink 类型调用各子审计 skill(php-route-mapper、php-auth-audit、php-route-tracer、php-*-audit),并复用统一输出与分级标准。其目标不是“找一两个危险点”,而是以数据流分析加业务逻辑验证的方式,输出一份可用于落地修复的安全审计报告。

运行依赖说明

本 skill 在当前安装形态下是“文档编排/方法论”版本,通常不会在本地仓库中提供可执行脚本(例如 scripts/*.py)。当环境中不存在对应执行器时,应直接使用文档里描述的阶段化流程(route-mapper / auth-audit / vuln-scanner / route-tracer 等)进行源码分析与报告生成;如果看到“正在寻找执行器脚本”的提示,可将其视为“未找到执行器,改走阶段化降级流程”,不要把它当作路径错误。

主要能力

编排说明

本流水线采用“先分后合”的两阶段输出策略:

  • 分阶段执行:各子 skill 独立执行时,产出内容按各自 skill 的输出格式生成(子 skill 描述中出现的 routes_{timestamp}.md、vuln_audit/sql_{timestamp}.md 等路径,表示各子 skill 的逻辑输出单元,而非独立落盘文件)。
  • 最终合并:由 pipeline 编排者在阶段 5 将所有子 skill 产出的正文内容按阶段顺序合并到单个最终汇总 MD 文件中(不创建多个分类文件/子目录)。

三层分析法

  • 面:模式/关键字扫描,快速定位高风险区域
  • 线:逐行审计并追踪变量流向(Source → Sink)
  • 点:逻辑验证,确认绕过/利用是否真的成立

10 个安全维度

  • D1 注入:SQL/命令/LDAP/SSRF/模板注入/SSTI/表达式注入
  • D2 认证:Token/Session/JWT/框架认证链
  • D3 授权:越权一致性、IDOR、RBAC/ABAC 校验
  • D4 反序列化:unserialize/object injection gadget
  • D5 文件操作:上传/下载/路径穿越/包含任意文件
  • D6 SSRF:URL 注入、协议限制、内网访问限制
  • D7 加密:密钥管理、密码模式、签名/校验弱点
  • D8 配置:CORS/错误暴露/调试开关/安全头
  • D9 业务逻辑:竞态、Mass Assignment、状态机缺陷
  • D10 供应链:Composer 依赖已知漏洞

漏洞分级

严重等级计算公式:

严重等级 = f(可达性, 影响范围, 利用复杂度) Score = R × 0.40 + I × 0.35 + C × 0.25 CVSS 映射 = Score / 3.0 × 10.0

三维评分标准:

可达性 R:3 无需认证 HTTP 直接可达;2 需要普通用户认证;1 需要管理员权限或内网访问;0 代码不可达/死代码。

影响范围 I:3 RCE/任意文件写入/完全数据泄露/系统沦陷;2 敏感数据泄露/越权/部分文件读取;1 有限信息泄露/低影响配置读取;0 无实际安全影响。

利用复杂度 C:3 低复杂度(单次请求可用);2 中复杂度(需构造 payload 或多步操作);1 高复杂度(需要特定环境/竞态/链式利用);0 不可利用(有效防护,绕不过)。

等级映射:🔴 C(Critical)CVSS 9.0-10.0;🟠 H(High)CVSS 7.0-8.9;🟡 M(Medium)CVSS 4.0-6.9;🔵 L(Low)CVSS 0.1-3.9。

漏洞编号规范

格式:{等级前缀}-{类型代码}-{序号}。类型代码包括 SQL、NOSQL、CMD、SSRF、XSS、FILE、UPLOAD、WRITE、REDIR、CRLF、XXE、DESER、TPL、LDAP、EXPR、AUTH、CSRF、SESS、CFG、CRYPTO、LOGIC、FS、LOG。

使用方式

输入

用户提供:

  • source_path:PHP 项目源码路径(可为目录、仓库根目录)
  • output_path:输出目录路径(默认 {source_path}_audit)

派生变量:project_name 从 source_path 目录名提取(basename);timestamp 生成时间戳,建议格式为 YYYY_MM_DD_HH_mm。

输出目录结构

{output_path}/ └── {project_name}代码审计{timestamp}.md

后文出现的 routes_{timestamp}.md、auth_mapping_{timestamp}.md、vuln_audit/sql_{timestamp}.md 等“文件路径”,都仅表示要写入本次总报告中的对应章节内容分段,不落地为独立文件。同理,“读取文件”改为“引用本报告中已生成的对应章节内容”。

执行流程(阶段化流水线)

阶段 1:侦察(Recon)——识别技术栈/入口形态、枚举路由/入口、枚举参数、识别认证链与会话机制、生成鉴权映射、供应链漏洞扫描、框架特效审计(可选)。输出 routes、params、auth_mapping、composer_vuln_report、framework_audit 等章节内容。

阶段 2:建模(Modeling)——对每个路由建立至少一条“从入口参数到敏感 Sink 的最短路径”,记录 Source 参数、中间变量变化、分支条件、Sink 类型与调用点。

阶段 2.5:Sink-only 全局扫描兜底——在路由枚举/trace-gate 失败或证据不足时,通过“静态 Sink 命中 + 本地可控性回溯 + 执行点确认”找到高危点,一律降级为 ⚠️待验证(静态证据)。覆盖 CMD、EXPR、FILE、DESER 等必覆盖 Sink 集合,并扩展扫描 SQL/SSRF/任意读等。输出到 global_sink_fallback/。

阶段 3:分批追踪(Only When Trace Proves)——生成高危路由集合(P0/P1/SINK_SUSPECT),生成分批追踪计划,批量调用 php-route-tracer,输出 route_tracer/{route_id}/trace_{timestamp}.md。触发条件为硬门槛:只有当某类 sink 在 trace 中出现“真实 sink 执行点”,且 trace 契约校验通过,且对应参数在 trace 的可控性矩阵里不是“不可控/无实际使用”,才允许进入阶段 4。

阶段 4:Sink 审计执行(Only When Trace Proves)——从 trace 中筛选需要 trace-gate 的漏洞类别与参数实际使用状态,仅对命中的类别调用对应子审计 skill。trace-gate 类别包括 SQL/NOSQL/CMD/SSRF/FILE/UPLOAD/WRITE/ARCHIVE/XSS/REDIR/CRLF/XXE/DESER/TPL/LDAP/EXPR/AUTH/CSRF/SESS;非 trace-gate 类别包括 CFG/CRYPTO/LOGIC/LOG。文件系统操作审计(php-filesystem-audit)为非 trace-gate,静态证据驱动。

阶段 5:汇总报告(Report)——生成质量报告章节,包含子 skill/审计面覆盖矩阵、风险统计表、漏洞列表总览、Trace 未闭合/待补证风险池、覆盖率、框架特效审计汇总、证据完整度评分。

阶段 5.1:利用链聚合(强制)——调用 php-exploit-chain-audit,在漏洞列表总览之后增加利用链聚合章节。

漏洞详情模板

每条漏洞必须包含:严重等级、可达性、影响范围、利用复杂度、可利用性、位置、数据流链(Source → Sink)、可利用前置条件、验证 PoC、建议修复。

适用场景

适用于对 PHP 项目源码进行白盒安全审计,覆盖 Laravel、Symfony、Slim、WordPress、原生 PHP 等入口形态,以及 Laravel/Symfony/WordPress/CodeIgniter/Yii2/ThinkPHP 等框架特效审计。

限制

  • 本 skill 在当前安装形态下是“文档编排/方法论”版本,通常不提供可执行脚本。
  • 无执行器时需按阶段化降级流程手工完成。
  • 无完整 trace 时禁止标 ✅已确认可利用,但必须保留 ⚠️待验证 或 🔍环境依赖 条目。
  • 只要涉及“执行点/分支”无法完整证明,就把结论降级为待验证。
  • 框架特效审计属于“静态配置/模式匹配”型审计,其发现的风险不需要经过 trace-gate 或证据校验。