with one click
php-auth-audit
// PHP Web 源码鉴权机制审计工具。从源码中识别所有认证/鉴权实现并分析风险,输出路由-鉴权映射与漏洞分析(含 PoC 与修复建议)。
// PHP Web 源码鉴权机制审计工具。从源码中识别所有认证/鉴权实现并分析风险,输出路由-鉴权映射与漏洞分析(含 PoC 与修复建议)。
PHP Web 归档解压(Zip Slip/路径穿越)审计工具。识别解压条目名如何与目标目录拼接、是否存在 base dir 约束缺失,输出可利用性分级、可观测 PoC 与修复建议(禁止省略)。
PHP Web 全链路白盒代码安全审计流水线(多文件版编排)。作为总编排参考,按 Sink 类型调用各子审计 skill(`php-route-mapper/php-auth-audit/php-route-tracer/php-*-audit`),并复用统一输出与分级标准。
PHP Web 源码命令注入审计工具。识别命令执行 Sink(exec/system/shell_exec 等),追踪用户输入进入命令拼接,输出可利用性分级、PoC 与修复建议(禁止省略)。
CodeIgniter 框架特效安全审计工具。针对 CodeIgniter 的 CSRF、XSS 输出过滤、数据库查询构造、路由与验证器配置、会话 Cookie 安全等机制进行白盒静态审计,并映射到通用漏洞类型体系(CSRF/AUTH/XSS/SQL/CFG/SESS 等)。
PHP Web 配置安全审计工具。识别 CORS/错误暴露/调试开关/安全头/危险运行时开关等,输出分级、可利用性分析、PoC 与修复建议(禁止省略)。
PHP Web 源码 CRLF/响应分割审计工具。识别用户输入进入 HTTP 响应头,分析换行/控制字符过滤与编码,输出分级、PoC 与修复建议(禁止省略)。
| name | php-auth-audit |
| description | PHP Web 源码鉴权机制审计工具。从源码中识别所有认证/鉴权实现并分析风险,输出路由-鉴权映射与漏洞分析(含 PoC 与修复建议)。 |
分析 PHP Web 项目源码,识别认证与授权链路,判断每条路由的鉴权状态,并检测鉴权绕过/越权/IDOR 风险。
php-route-mapper 中出现的路由此技能支持两种模式,用于解决“尚未生成 trace 之前无法引用 EVID_*”的问题:
STATIC_MAPPING(推荐用于流水线阶段 1)
auth_mapping_{timestamp}.md(以及可选的 auth_README_{timestamp}.md)php-route-tracer 的 EVID_* 证据点引用TRACE_AUDIT(推荐用于流水线阶段 4,trace 已存在)
auth_audit_report_{timestamp}.md,并强制逐条引用 trace 契约中的 EVID_* 证据点详见:shared/SEVERITY_RATING.md
建议输入(与 shared/IO_PATH_CONVENTION.md 一致;合并流水线时读总报告中等价章节):
routes_{timestamp}.md(独立落盘时常为 route_mapping/routes_{timestamp}.md)params_{timestamp}.md(独立落盘时常为 route_mapping/params_{timestamp}.md)可选:
source_path按框架识别:
middleware('auth'|'can'|'role:')Auth::check()/Auth::user()Gate::allows、->can({value})Route::middleware([{value}])->group({value})denyAccessUnlessGranted、isGrantedsession_start + $_SESSION 判断if (!isset($_SESSION['user']))/requireLogin()checkAuth/authorize/hasRole/isAdmin对每条路由输出以下状态:
并输出风险类型:AUTH,包括:
在 PHP 中常见根因:
$_SERVER['REQUEST_URI'] 或 parse_url 结果做白名单匹配,但路径未规范化必须输出:
必须输出:
user!=null 后直接执行敏感操作)必须输出:
输出到:
{output_path}/auth_audit/
├── auth_audit_report_{timestamp}.md
├── auth_mapping_{timestamp}.md
└── auth_README_{timestamp}.md
强制规则:
STATIC_MAPPING:必须生成 auth_mapping_{timestamp}.md;auth_audit_report_{timestamp}.md 可以省略或生成空壳(并标注:仅分桶映射,不含 trace 证据)TRACE_AUDIT:必须生成完整三文件,并要求 trace 证据点齐全auth_audit_report_{timestamp}.md包含:
auth_mapping_{timestamp}.md只列路由与鉴权状态、所需角色/条件(不要放漏洞详细分析)。 但必须新增分桶字段(用于流水线阶段 3 选路):
p_bucket:P0 或 P1
P0:❌ 无鉴权P1:⚠️ 仅认证,或检测到存在授权绕过/越权/IDOR 风险(即使鉴权状态显示为“仅认证”,也要在 p1_reason 里说明为什么进入 P1)p1_reason:一段简短静态依据(如“仅登录态,缺少 hasRole/authorize 或缺少 owner_id 校验”)auth_README_{timestamp}.md只说明方法论、工具与验证指南,不包含具体漏洞细节。
必须区分至少以下场景:
PoC 必须是可执行 HTTP 请求代码块,并且路由路径必须使用真实路由规则。
STATIC_MAPPING:不强制引用 trace 的 EVID_* 证据点(只需输出鉴权分级与 P0/P1 分桶依据)。TRACE_AUDIT:每条疑似鉴权风险必须逐项引用 trace 输出中的证据(允许状态标记为待验证,但证据引用必须存在):EVID_AUTH_PATH_PROTECTED_MATCH:路由进入受保护 handler 的路径匹配证据(对应 trace 的分支路径证据)EVID_AUTH_TOKEN_DECODE_JUDGMENT:登录态/Token 解码结果如何被判断的证据(对应 trace 中 session/JWT 读取与条件分支)EVID_AUTH_PERMISSION_CHECK_EXEC:权限判断函数或条件语句(如 hasRole/authorize)的执行证据(trace sink 定位或分支证据)EVID_AUTH_IDOR_OWNERSHIP_CONDITION:IDOR 归属校验(WHERE/条件)是否包含 owner_id/user_id 的证据(trace 中最终查询条件或状态更新语句)STATIC_MAPPING:不适用(分桶依据以静态代码证据为准)。TRACE_AUDIT:若 trace 契约校验失败或无法定位 1~4 任一关键证据点:该风险只能标记为 ⚠️待验证,不得给出 ✅已确认可利用 或“确定可绕过”的结论。