一行命令,挖完整个 Java Web 项目。基于 java-audit-skills 深度二次开发。
一个 Claude Code 技能包。输入一个 Java Web 项目路径,自动跑完 7 阶段流水线——识别路由、追踪调用链、检测漏洞、编排利用链——最终产出一份完整的审计报告。
不需要你懂安全。 启动之后去喝杯咖啡,回来看报告就行。
| 漏洞类型 | 能发现什么 | 示例 |
|---|---|---|
| 🔴 SQL 注入 | ORDER BY 拼接、MyBatis ${}、HQL 注入 | sql + " ORDER BY " + page.getOrderBy() |
| 🔴 反序列化 | ObjectInputStream、Fastjson、Jackson、Hessian、JNDI | JSON.parse(userInput) + classpath 含 CC1 链 |
| 🔴 SSRF | RestTemplate、HttpClient、OkHttp 等 12 种 sink | restTemplate.getForObject(userUrl) → 打云元数据 |
| 🔴 表达式注入 | OGNL、SpEL、MVEL、FreeMarker、Velocity 等 10+ 引擎 | Struts2 S2-045 Content-Type 注入 |
| 🟠 XXE | 5 种 XML 解析器外部实体注入 | SAXReader 未禁用 DOCTYPE |
| 🟠 文件上传 | 任意文件上传、路径穿越、Web 目录写入 | getOriginalFilename() 直接拼路径 |
| 🟠 文件读取 | 任意文件读取、路径遍历 | new FileInputStream(userPath) 无校验 |
| 🟠 鉴权绕过 | Shiro/Spring Security 绕过、越权、Actuator 暴露 | /admin;.js 绕过 Filter |
组件漏洞:通过 OSV.dev API 实时查询 3000+ CVE,覆盖 Log4j、Fastjson、Spring、Shiro、Struts2、Jackson、XStream 等。
利用链编排:自动把零散的"中危"漏洞串起来。比如「文件读取 → Shiro 密钥 → RememberMe RCE」→ 从 Medium 升级到 Critical。
# 克隆到 Claude Code skills 目录
git clone https://github.com/Dest1ny-Sec/Des-java-auto-skill.git ~/.claude/skills/Des-java-auto-skill
# 安装 Python 依赖(三平台通用)
pip3 install -r ~/.claude/skills/Des-java-auto-skill/requirements.txt启用 Agent Teams(必须,按你的系统选一个):
# macOS / Linux — 加到 shell 配置文件
echo 'export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1' >> ~/.zshrc # zsh
echo 'export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1' >> ~/.bashrc # bash
# Windows PowerShell
[Environment]::SetEnvironmentVariable('CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS','1','User')
# Windows CMD
setx CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 1# 进入 Claude Code,对一个 Java 项目执行:
/java-audit-pipeline --quick /path/to/your-java-project3-5 分钟后,打开 {项目名}_audit/quality_report.md 看结果。
# 🚀 快速模式 — 小项目、首次体验、快速排查(3-5 分钟)
/java-audit-pipeline --quick /path/to/project
# 🏗️ 标准模式 — 正式审计、中大型项目(10-60 分钟)
/java-audit-pipeline /path/to/project
# 🔄 增量模式 — 只审计 git diff 变更的文件
/java-audit-pipeline --incremental /path/to/project| 🚀 快速 | 🏗️ 标准 | 🔄 增量 | |
|---|---|---|---|
| 适用 | < 50 路由的小项目 | 正式审计交付 | 日常迭代 |
| 并发 | 1 agent 串行 | 5-10 agent 并行 | 同标准 |
| 质检 | 自检 | 独立 QA 池 | 同标准 |
| 耗时 | 3-5 分钟 | 10-60 分钟 | 按变更量 |
不确定用哪个? 先
--quick看概况,满意了再跑标准模式深挖。
你的 Java 项目
│
▼
┌─────────────────────────────────────────────────┐
│ 阶段 0 · 快速匹配(秒级) │
│ 8 条 grep 规则扫描 Runtime.exec / JNDI / 反序列化 │
│ 命中立即报告,不等待后续阶段 │
├─────────────────────────────────────────────────┤
│ 阶段 1 · 信息收集(并行) │
│ ├─ 路由提取:识别所有 HTTP 端点 + 参数结构 │
│ ├─ 鉴权审计:每条路由的鉴权状态 + 绕过检测 │
│ └─ 组件扫描:OSV.dev 3000+ CVE + 130 条本地规则 │
├─────────────────────────────────────────────────┤
│ 阶段 2 · 交叉筛选 │
│ ├─ 路由分级:P0(无鉴权) / P1(可绕过) / P2 │
│ └─ 漏洞汇总:组件漏洞 + 鉴权绕过合并去重 │
├─────────────────────────────────────────────────┤
│ 阶段 3 · 调用链追踪(分批并行) │
│ Controller → Service → DAO 完整链路 │
│ 标注参数是否真正到达 Sink(消除误报) │
├─────────────────────────────────────────────────┤
│ 阶段 4 · 漏洞深度检测(按 Sink 类型并行) │
│ SQL / XXE / Upload / FileRead / Deserialize │
│ SSRF / ExprInject — 只启动有对应 Sink 的检测 │
├─────────────────────────────────────────────────┤
│ 阶段 5 · 利用链编排 │
│ 匹配 8 种利用链模板,中危漏洞组合升级为 RCE │
├─────────────────────────────────────────────────┤
│ 阶段 6 · 汇总报告 │
│ quality_report.md 一键可读 │
└─────────────────────────────────────────────────┘
- 一个中型项目(300+ 路由),手工看完所有 Controller → Service → DAO 至少要 2-3 天
- 这个工具标准模式 10-60 分钟跑完,还不漏
- 商用工具动辄六位数/年,部署配置复杂
- 这个是免费的,而且能理解业务逻辑——不是简单的模式匹配
- 商用工具漏报的 ORDER BY 注入、鉴权绕过、利用链组合,这个能抓到
| 维度 | 原版 | Des-java-auto-skill |
|---|---|---|
| 漏洞类型 | 5 种 | 8 种 (+反序列化/SSRF/表达式注入) |
| CVE 覆盖 | 130 条硬编码 | 3000+ 条 OSV.dev 实时查询 |
| 利用链 | 无 | 8 种模板,中危自动升级 RCE |
| 增量审计 | 无 | git diff,只扫变更 |
| 快速匹配 | 无 | 秒级 grep 先出 P0 高危 |
| 快速模式 | 无 | --quick,3 分钟看概况 |
{项目名}_audit/
├── quality_report.md ← 📄 从这里开始看(最终汇总)
├── PARTIAL_RESULTS.md ← ⚠️ 如果流水线中断会生成这个
├── quick_hits/ ← ⚡ 秒级高危命中
├── route_mapper/ ← 🗺️ 所有 HTTP 路由 + 参数
├── auth_audit/ ← 🔐 鉴权分析 + 绕过 PoC
├── vuln_report/ ← 📦 组件 CVE 清单
├── route_tracer/ ← 🔗 调用链追踪
├── sql_audit/ ← 💉 SQL 注入详情
├── xxe_audit/ ← 📋 XXE 详情
├── file_upload_audit/ ← 📤 文件上传详情
├── file_read_audit/ ← 📥 文件读取详情
├── deserialization_audit/ ← ⛓️ 反序列化 + gadget 链
├── ssrf_audit/ ← 🌐 SSRF + 云元数据利用链
├── expr_inject_audit/ ← 🧩 表达式注入 + 沙箱绕过
├── cross_analysis/ ← 📊 交叉分析(P0/P1 路由分级)
└── decompiled/ ← 🔧 CFR 反编译产物
拿到报告看哪里? 打开
quality_report.md,顶部是漏洞总览面板。每个漏洞都有位置、PoC、修复建议。
不用流水线也可以单独跑某个检测:
# 只提取路由
/java-route-mapper /path/to/project
# 只做 SQL 注入审计
/java-sql-audit /path/to/project
# 只扫描组件漏洞
/java-vuln-scanner /path/to/project
# 只分析鉴权
/java-auth-audit /path/to/project所有 skill 独立可用,输出格式一致。
| 依赖 | 用途 | 检查命令 |
|---|---|---|
| Claude Code ≥ 2.1.32 | 运行平台 | claude --version |
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 |
Agent 并发(必须) | echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS |
| Java | CFR 反编译 .class/.jar | java -version |
| Python 3 | 漏洞扫描脚本 | python3 --version |
| pip 依赖 | PyYAML + requests | pip3 install -r requirements.txt |
| 平台 | 状态 |
|---|---|
| macOS | ✅ 完整支持 |
| Linux | ✅ 完整支持 |
| Windows (WSL2) | ✅ 完整支持 |
| Windows (原生) |
Q: 对大型项目(1000+ 路由)效果如何? 标准模式会自动分片——recon 侦查 → N 个 worker 并行提取路由 → 合并索引。单个 agent 硬上界 200 路由,大项目会自动拆成多个 agent。
Q: 只有 .class / .jar 没有源码能跑吗? 能。内置 CFR 反编译器,会自动反编译后分析。不过源码审计结果会更精确。
Q: 流水线跑到一半断了怎么办?
会自动生成 PARTIAL_RESULTS.md,列出已完成和未完成的阶段,已产出的结果不会丢。用 --incremental 可以跳过已完成的阶段续跑。
Q: 会不会有误报? 调用链追踪阶段会检查参数是否真正到达 Sink 点。如果参数被硬编码覆盖、被安全函数白名单过滤,会被排除。比单纯的 grep 匹配准确得多。
Q: 跑一次要多少 token? 快速模式约 50-100k token。标准模式下中型项目(300 路由)约 300-800k token,大型项目(1000+ 路由)可能上百万。
| Skill | 干什么的 | 状态 |
|---|---|---|
java-route-mapper |
提取所有 HTTP 路由 + 参数结构 | 增强 |
java-route-tracer |
Controller→DAO 调用链追踪 | 增强 |
java-auth-audit |
鉴权机制分析 + 绕过检测 | 增强 |
java-vuln-scanner |
组件 CVE 扫描(OSV.dev) | 增强 |
java-sql-audit |
SQL 注入检测 | — |
java-xxe-audit |
XXE 外部实体注入检测 | — |
java-file-upload-audit |
文件上传漏洞检测 | — |
java-file-read-audit |
任意文件读取检测 | — |
java-deserialization-audit |
反序列化 + gadget 链分析 | 🆕 |
java-ssrf-audit |
SSRF + 云元数据利用链 | 🆕 |
java-expression-inject-audit |
表达式/模板注入 + 沙箱绕过 | 🆕 |
java-audit-pipeline |
全链路自动化编排 | 🆕 重写 |
Des-java-auto-skill/
├── README.md
├── requirements.txt
├── .gitignore
├── .claude/
│ └── settings.local.json # 权限预设(减少弹窗)
└── skills/
├── java-shared/ # 共享规范(评级标准/输出模板/反编译策略)
├── java-audit-pipeline/ # 流水线编排(7 阶段 + agent team)
├── java-route-mapper/ # 路由提取
├── java-route-tracer/ # 调用链追踪
├── java-sql-audit/ # SQL 注入
├── java-auth-audit/ # 鉴权审计
├── java-file-upload-audit/ # 文件上传
├── java-file-read-audit/ # 文件读取
├── java-xxe-audit/ # XXE
├── java-deserialization-audit/ # 🆕 反序列化
├── java-ssrf-audit/ # 🆕 SSRF
├── java-expression-inject-audit/ # 🆕 表达式注入
└── java-vuln-scanner/ # 组件 CVE 扫描
本项目基于 java-audit-skills 二次开发,在此基础上新增 3 种漏洞类型(反序列化/SSRF/表达式注入)、OSV.dev 3000+ CVE 覆盖、利用链编排、增量审计、快速模式等能力。
仅供学习和授权安全研究使用。