
Java Audit Pipeline
Java 白盒源码安全审计总方法论。当需要对 Java 项目进行完整的源码安全审计、 或需要系统化的白盒漏洞挖掘流程时触发。 覆盖 5 阶段审计流水线...
Install
npx skills add wgpsec/AboutSecurity --skill java-audit-pipeline -g -a claude-code -y- Repository
- wgpsec/AboutSecurity1.8k
- Category
- Engineering
- Updated
- 11d ago
- License
- See repository
- Context cost
- Lightabout 749 tokens
- Runs scripts
- No, instructions only
What it does
Java 白盒源码安全审计总方法论。当需要对 Java 项目进行完整的源码安全审计、 或需要系统化的白盒漏洞挖掘流程时触发。 覆盖 5 阶段审计流水线: 路由映射→权限建模→数据流追踪→分类漏洞审计→利用链组装。 核心机制: 证据合约系统(EVID_*)防止 AI 幻觉误报,所有漏洞结论必须有数据流证据支撑。
Java 白盒审计总方法论
白盒审计在源码层面发现漏洞,关注"代码为什么不安全"。发现漏洞后的实际利用技术(构造 payload、绕过 WAF、Gadget Chain 武器化)属于黑盒 exploit skill 范畴。Java 项目常以编译后的 .class / JAR / WAR 形式交付,需先完成反编译还原源码(详见 decompile-strategy.md)。
深入参考
- 证据合约系统与评分公式 → references/evidence-contract.md
- Java 危险函数分类速查 → references/sink-reference.md
- CFR 反编译策略 → references/decompile-strategy.md
- Semgrep / SonarQube / CodeQL / Snyk 等 SAST 工具链 → 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)。
