# Java Audit Pipeline

Java 白盒源码安全审计总方法论。当需要对 Java 项目进行完整的源码安全审计、 或需要系统化的白盒漏洞挖掘流程时触发。 覆盖 5 阶段审计流水线...

- Repository: https://github.com/wgpsec/AboutSecurity (1833 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-10-24
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add wgpsec/AboutSecurity --skill java-audit-pipeline -g -a claude-code -y`
Codex: `npx skills add wgpsec/AboutSecurity --skill java-audit-pipeline -g -a codex -y`
Cursor: `npx skills add wgpsec/AboutSecurity --skill java-audit-pipeline -g -a cursor -y`
Gemini CLI: `npx skills add wgpsec/AboutSecurity --skill java-audit-pipeline -g -a gemini-cli -y`

## Description

Java 白盒源码安全审计总方法论。当需要对 Java 项目进行完整的源码安全审计、 或需要系统化的白盒漏洞挖掘流程时触发。 覆盖 5 阶段审计流水线: 路由映射→权限建模→数据流追踪→分类漏洞审计→利用链组装。 核心机制: 证据合约系统(EVID_*)防止 AI 幻觉误报，所有漏洞结论必须有数据流证据支撑。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Java 白盒审计总方法论
白盒审计在源码层面发现漏洞，关注"代码为什么不安全"。发现漏洞后的实际利用技术（构造 payload、绕过 WAF、Gadget Chain 武器化）属于黑盒 exploit skill 范畴。Java 项目常以编译后的 .class / JAR / WAR 形式交付，需先完成反编译还原源码（详见 decompile-strategy.md）。

## 深入参考

- 证据合约系统与评分公式 → [references/evidence-contract.md](references/evidence-contract.md)
- Java 危险函数分类速查 → [references/sink-reference.md](references/sink-reference.md)
- CFR 反编译策略 → [references/decompile-strategy.md](references/decompile-strategy.md)
- Semgrep / SonarQube / CodeQL / Snyk 等 SAST 工具链 → [references/sast-toolchain.md](references/sast-toolchain.md)

---

## 审计 5 阶段概览

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

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

解析框架路由配置，建立完整的攻击面清单:
- **Spring MVC**: `@RequestMapping`, `@GetMapping`, `@PostMapping` 等组合注解，扫描所有 `@Controller` / `@RestController` 类
- **Servlet**: `web.xml` 中的 `<servlet-mapping>` 以及 `@WebServlet` 注解注册的 Servlet
- **JAX-RS**: `@Path`, `@GET`, `@POST` 等注解，检查 `Application` 子类注册的资源
- **Struts2**: `struts.xml` 中的 `<action>` 映射和 `ActionMapping` 通配符规则
- **WebService**: CXF / Axis 的 `@WebService` 端点和 WSDL 发布路径

产出: 路由清单，每条记录包含 URL 路径、Handler 方法签名、参数绑定方式（`@RequestParam` / `@PathVariable` / `@RequestBody`）、是否需认证。

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

分析安全框架的过滤链配置，找出缺少认证保护的路由:
- **Spring Security**: `SecurityFilterChain` / `WebSecurityConfigurerAdapter` 中的 `antMatchers` / `requestMatchers` 规则
- **Apache Shiro**: `shiroFilterChainDefinition` 中的 URL-Filter 映射（anon / authc / perms）
- **自定义拦截器**: `HandlerInterceptor.preHandle()` 的注册范围和排除路径
- 检查 JWT / Session / OAuth2 Token 的签发与校验逻辑、密码存储方式（BCrypt / 明文）

## Phase 3: 数据流追踪（Source → Sink）

每条潜在漏洞路径都要产出 EVID_* 证据点（详见 evidence-contract.md）。

The rest: https://github.com/wgpsec/AboutSecurity/blob/HEAD/skills/code-audit/java/java-audit-pipeline/SKILL.md
