naixiao/multi-lang-code-audit-skill

GitHub: naixiao/multi-lang-code-audit-skill

一套证据链驱动的多语言白盒代码审计 Codex Skill,通过路由分析、Source/Sink 追踪和 PoC 生成,帮助安全研究员从源码中挖掘并验证真实漏洞。

Stars: 1 | Forks: 0

# Multi-language Code Audit Skill 面向 **PHP、Java、Python、Go、.NET/C#** 的多语言代码审计 Codex Skill。它不是简单的关键词扫描清单,而是一套围绕 **路由识别、鉴权分析、Source/Sink 追踪、数据流证据、漏洞确认、PoC 生成、修复建议、审计报告** 设计的白盒代码审计工作流。 ## 项目简介 `multi-lang-code-audit` 是一个证据链驱动的代码审计 skill,适用于 Web/API/后台系统/开源 CMS/企业应用/组件项目的源码安全审计。它借鉴 SAST、人工白盒审计和真实漏洞报告的思路,把“发现疑似危险点”推进到“证明漏洞是否真实可利用”。 核心目标: - 帮助审计人员快速理解陌生项目的入口、路由、参数、鉴权和危险操作。 - 从 Source 到 Sink 追踪用户输入,减少只靠关键词扫描带来的误报。 - 对未闭合的数据流保留“待验证风险池”,避免静默漏报。 - 输出可以提交、复核、修复的漏洞报告,而不是只给一句结论。 项目关键词: `PHP`、`Java`、`Python`、`Go`、`.NET`、`C#`、`代码审计`、`白盒审计`、`源码审计`、`安全审计`、`漏洞挖掘`、`Web 安全`、`SQL 注入`、`文件上传`、`任意文件读取`、`SSRF`、`RCE`、`XSS`、`XXE`、`反序列化`、`权限绕过`、`越权`、`业务逻辑漏洞`、`Zip Slip`。 ## 核心亮点 - **覆盖主流后端语言**:PHP、Java、Python、Go、.NET/C#,适合多语言仓库和企业混合技术栈。 - **面向真实代码审计**:围绕路由、鉴权、参数、调用链、Source/Sink、PoC、修复建议组织流程。 - **证据链优先**:每个漏洞要求给出入口、数据来源、校验缺陷、危险 Sink、触发条件和影响边界。 - **降低误报**:区分 `CONFIRMED`、`ENV_DEPENDENT`、`PENDING_TRACE`、`STATIC_ONLY`、`NOT_EXPLOITABLE`。 - **不漏掉半成品风险**:无法闭合的数据流不会被删除,而是进入待验证风险池,方便后续深挖。 - **融合实战模式**:内置动态 include、MIME 绕过、HQL 注入、Zip Slip、弱口令、未授权 action、Source Map 泄露等真实报告模式。 - **可调度专项 skill**:PHP/Java 项目可联动已有 route mapper、auth audit、route tracer、SQL/file/upload/XXE 等专项审计 skill。 - **报告即交付物**:内置统一报告模板,输出风险统计、覆盖矩阵、漏洞详情、PoC、修复优先级和回归搜索命令。 - **适合 SRC/CNVD/CVE/Bug Bounty**:既能做项目全量审计,也能围绕单个高危入口做深度漏洞挖掘。 - **轻量可扩展**:规则、语言参考、报告模式都在 Markdown 中,方便安全研究员持续补充自己的方法论。 ## 核心特性 ### 1. 多语言白盒审计 支持 PHP、Java、Python、Go、.NET/C# 的常见 Web/API/后台项目审计,覆盖原生框架、MVC 框架、REST API、后台管理系统、上传/下载模块、任务队列、CLI/定时任务等入口。 ### 2. Route -> Auth -> Trace -> Sink 流程 审计流程不是“搜危险函数就结束”,而是按以下路径推进: 技术栈识别 -> 路由/入口/参数枚举 -> 鉴权与权限边界分析 -> Source/Sink 候选点提取 -> 调用链和数据流追踪 -> 漏洞可利用性判断 -> PoC 与修复建议 -> 最终审计报告 ### 3. PHP / Java 专项能力联动 对 PHP 和 Java 项目,skill 会优先复用本地已有专项能力: - PHP:`php-route-mapper`、`php-auth-audit`、`php-route-tracer`、`php-sql-audit`、`php-file-upload-audit`、`php-ssrf-audit`、`php-logic-audit` 等。 - Java:`java-route-mapper`、`java-auth-audit`、`java-route-tracer`、`java-sql-audit`、`java-file-upload-audit`、`java-vuln-scanner`、`java-xxe-audit` 等。 ### 4. 实战漏洞模式库 内置从真实漏洞报告提炼出的高价值检查点: - PHP 动态 `include $page . '.php'` 与 `php://filter` 源码读取 - `mime_content_type()`、`Content-Type`、原始文件名导致的上传绕过 - `getClientOriginalName()`、双后缀、GIF polyglot 上传风险 - 未授权 `action` 分发器和后台 AJAX 接口 - `X-Forwarded-For` 等 Header 进入 SQL 或业务身份逻辑 - Java `uniqueId/path/name` 字段进入 `Paths.get()` 导致任意文件写入 - HQL/JPQL/ORM 短查询片段拼接导致注入 - Zip Slip、same-prefix path bypass、symlink/hardlink 解压逃逸 - 弱口令、默认账号、未授权访问、Source Map 泄露 - 充值、排名、邀请、订单状态等业务逻辑缺陷 ### 5. 可运行的初始审计索引器 内置 `audit_inventory.py`,可快速生成项目语言、依赖、路由候选、Source 候选和 Sink 候选清单,作为人工审计和 Agent 审计的起点。 ### 6. 统一漏洞报告模板 报告模板关注“可复核”和“可修复”: - 风险统计 - 覆盖矩阵 - 漏洞总览 - Source-to-Sink 数据流 - 可利用前置条件 - HTTP PoC / 本地 PoC - 影响分析 - 修复建议 - 回归搜索命令 - 待验证风险池 ## 适用场景 - PHP、Java、Python、Go、.NET 项目的源码安全审计 - SRC、CNVD、CVE、Bug Bounty 漏洞挖掘辅助 - 开源 CMS、后台管理系统、API 服务、企业 Web 系统审计 - 路由、参数、鉴权、权限、文件操作、数据库操作梳理 - 生成结构化漏洞报告、PoC、修复建议和回归搜索语句 - 安全团队沉淀自己的代码审计方法论 - 红队/蓝队/安全研究员做源码级漏洞复现和根因分析 ## 支持的审计类型 - SQL/HQL/ORM 注入 - NoSQL 注入 - 命令执行 / 命令注入 - SSRF - XSS - 任意文件读取 / 路径穿越 / LFI - 任意文件上传 / 危险文件上传 - 任意文件写入 / 删除 - Zip Slip / 归档解压路径穿越 - XXE - 反序列化 / 对象注入 - 模板注入 / SSTI - 表达式注入 - LDAP 注入 - 开放重定向 - CRLF / 响应拆分 - 认证绕过 / 鉴权绕过 / 越权 / IDOR - CSRF - Session / Cookie / JWT 安全问题 - 弱口令 / 默认口令 - 配置暴露 / 调试信息 / Source Map 泄露 - 加密与密钥安全问题 - 日志与监控缺陷 - 业务逻辑漏洞 ## 项目结构 multi-lang-code-audit/ SKILL.md agents/ openai.yaml references/ php.md java.md python.md go.md dotnet.md vulnerability-matrix.md evidence-gates.md report-corpus-patterns.md existing-skill-map.md external-standards.md report-template.md scripts/ audit_inventory.py ## 快速使用 ### 安装方式一:克隆后复制 Skill 目录 将本仓库中的 `multi-lang-code-audit/` 整个目录复制到 Codex 可识别的 skills 目录中。 Windows 示例: Copy-Item -Recurse .\multi-lang-code-audit $env:USERPROFILE\.codex\skills\ Linux / macOS 示例: cp -r ./multi-lang-code-audit ~/.codex/skills/ 安装后的目录结构应类似: ~/.codex/skills/ multi-lang-code-audit/ SKILL.md agents/ openai.yaml references/ php.md java.md python.md go.md dotnet.md vulnerability-matrix.md evidence-gates.md report-corpus-patterns.md existing-skill-map.md external-standards.md report-template.md scripts/ audit_inventory.py ### 安装方式二:直接在当前仓库中使用 如果你在 Codex 中打开的是本仓库,也可以直接引用: 使用 $multi-lang-code-audit 审计 /path/to/source,输出完整代码审计报告。 ### 使用建议 代码审计类任务越明确,效果越好。推荐使用“审计目标 + 漏洞类型 + 输出要求”的方式提问。 在 Codex 中可以这样使用: 使用 $multi-lang-code-audit 审计这个源码目录,输出完整代码审计报告。 更推荐的强指向用法: 使用 $multi-lang-code-audit 审计当前 PHP 项目是否存在 SQL 注入、文件上传、任意文件读取和未授权访问,输出 Markdown 漏洞报告。 使用 $multi-lang-code-audit 审计当前 Java 项目的路由、鉴权、SQL 注入、文件上传、任意文件读取和 XXE 风险,按严重程度输出报告。 使用 $multi-lang-code-audit 梳理当前 Python/FastAPI 项目的路由、参数、鉴权和 SSRF/命令执行/文件读取风险。 使用 $multi-lang-code-audit 审计当前 Go 项目的 archive/zip 解压逻辑,重点分析 Zip Slip、same-prefix 绕过、symlink/hardlink 逃逸。 使用 $multi-lang-code-audit 审计当前 .NET 项目的鉴权、IDOR、文件上传、路径穿越和 SQL 注入风险。 ### 推荐审计提示词 适合全量项目审计: 使用 $multi-lang-code-audit 对源码目录进行白盒代码审计。 要求: 1. 先识别语言、框架、依赖、入口、路由、权限模型和危险函数。 2. 按漏洞类型拆分审计:SQL 注入、命令执行、SSRF、XSS、文件读取、文件上传、文件写入、Zip Slip、XXE、反序列化、鉴权绕过、越权、CSRF、弱口令、配置泄露、业务逻辑漏洞。 3. 每个漏洞必须包含:漏洞类型、风险等级、文件路径、行号、可达路径、Source-to-Sink 数据流、触发条件、PoC、影响、修复建议、置信度。 4. 无法闭合的数据流不要删除,放入“待验证风险池”。 5. 最终输出 Markdown 审计报告,按严重程度排序。 源码路径:/path/to/source 输出路径:/path/to/output 适合单类型深挖: 使用 $multi-lang-code-audit 只审计当前项目的文件上传漏洞。 重点关注: - 原始文件名是否可控 - 扩展名白名单是否完整 - MIME / Content-Type 是否可绕过 - 上传目录是否 Web 可访问或可执行 - 是否存在路径穿越写入 - 是否可与 include / 静态资源目录 / 解析配置形成利用链 输出要求: - 给出所有上传入口 - 给出 Source-to-Sink 数据流 - 给出可执行 PoC - 给出修复建议和回归搜索命令 ### 使用 Codex Goal 持续审计 如果项目较大,可以用 Codex 的目标模式持续运行: /goal 你是代码审计编排器。 任务: 1. 使用 $multi-lang-code-audit 完整阅读并遵守 SKILL.md。 2. 先枚举目标仓库的语言、框架、入口、路由、权限模型、数据流、危险函数、配置与依赖。 3. 将审计拆分为多个漏洞类型,每次只聚焦一种漏洞类型,避免泛化。 4. 每轮结果必须包含:漏洞类型、风险等级、文件路径、行号、可达路径、触发条件、攻击方式、影响、证据、修复建议、置信度、是否需要动态验证。 5. 主审计员需要复核结果,去重、降噪、排除误报,并把所有单项结果合并成最终审计报告。 6. 最终报告按严重程度排序,并明确列出:确认漏洞、环境依赖漏洞、疑似漏洞、未发现但已覆盖的审计项、审计盲区。 源码路径:/path/to/source 输出路径:/path/to/output 也可以先运行内置索引脚本,对项目做第一轮语言、路由、Source/Sink 和依赖清点: python multi-lang-code-audit/scripts/audit_inventory.py /path/to/source --out /path/to/output ### 安全边界 默认建议只做只读审计: - 不修改目标源码。 - 不删除文件。 - 不提交 git。 - 不安装项目依赖,除非用户明确授权。 - 不执行破坏性 PoC。 - 如需运行命令,仅用于读取项目信息、搜索代码、运行只读测试或静态分析。 - 对真实目标、Cookie、Token、账号密码、密钥和未公开 PoC 做脱敏处理。 ## 设计特点 - **多语言覆盖**:支持 PHP、Java、Python、Go、.NET/C#。 - **证据链优先**:每个漏洞都要求入口、Source、校验缺陷、Sink、触发条件、影响和 PoC。 - **不静默丢弃风险**:未闭合的数据流会进入待验证风险池,而不是直接忽略。 - **适配实战报告**:内置来自真实漏洞报告的审计模式,如动态 include、MIME 绕过、HQL 注入、Zip Slip、弱口令和未授权 action。 - **可组合现有 skill**:PHP/Java 项目可调度已有专项审计 skill,其他语言使用内置规则完成审计。 - **统一报告模板**:输出风险统计、覆盖矩阵、漏洞详情、PoC、修复建议、回归搜索命令。 ## 与普通 SAST 的区别 普通 SAST 更擅长批量发现模式,本项目更强调“审计员式证据闭环”: | 能力 | 普通关键词扫描 | 本项目 | |---|---|---| | 多语言覆盖 | 取决于规则 | PHP / Java / Python / Go / .NET | | 路由与入口 | 常被弱化 | 优先枚举 | | 鉴权分析 | 通常不足 | 单独建模 | | Source/Sink | 有 | 强调数据流证据 | | 误报处理 | 依赖规则质量 | 使用证据门禁和状态分级 | | 未闭合风险 | 容易丢失 | 进入待验证风险池 | | 报告输出 | 告警为主 | 可提交的漏洞报告 | | 方法扩展 | 写规则成本较高 | Markdown 化,可持续沉淀 | ## 支持项目 如果这个项目对你的 PHP、Java、Python、Go、.NET 代码审计、白盒审计或漏洞挖掘有帮助,欢迎点一个 Star,方便后续持续更新规则、样例和实战审计模式。 ## 免责声明 本项目仅用于合法授权的代码审计、安全研究、漏洞验证和防御建设。请勿在未授权目标上使用本项目进行攻击、入侵或破坏性测试。使用者应自行承担使用本项目产生的法律和安全责任。 ## License MIT License
标签:JS文件枚举, 日志审计, 源码分析, 白盒测试, 自动化安全工具, 逆向工具, 错误基检测, 防御加固, 静态代码分析