with one click
java-vuln-scanner
// Java 组件版本漏洞检测工具。扫描 pom.xml、build.gradle 或 jar 文件中的第三方依赖,匹配已知漏洞规则(CVE)并生成漏洞检测报告。适用于:(1) Java 项目依赖安全审计,(2) 识别 Log4j、Fastjson、Shiro、Spring 等高危组件漏洞,(3) jar 包反编译后的依赖提取。支持按目录层级分组输出,支持通过 CFR 反编译 .class/.jar 文件提取依赖信息。
// Java 组件版本漏洞检测工具。扫描 pom.xml、build.gradle 或 jar 文件中的第三方依赖,匹配已知漏洞规则(CVE)并生成漏洞检测报告。适用于:(1) Java 项目依赖安全审计,(2) 识别 Log4j、Fastjson、Shiro、Spring 等高危组件漏洞,(3) jar 包反编译后的依赖提取。支持按目录层级分组输出,支持通过 CFR 反编译 .class/.jar 文件提取依赖信息。
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | java-vuln-scanner |
| description | Java 组件版本漏洞检测工具。扫描 pom.xml、build.gradle 或 jar 文件中的第三方依赖,匹配已知漏洞规则(CVE)并生成漏洞检测报告。适用于:(1) Java 项目依赖安全审计,(2) 识别 Log4j、Fastjson、Shiro、Spring 等高危组件漏洞,(3) jar 包反编译后的依赖提取。支持按目录层级分组输出,支持通过 CFR 反编译 .class/.jar 文件提取依赖信息。 |
扫描 Java 项目依赖中的已知漏洞,支持 130+ 条 CVE 规则,按模块分组输出,并由 AI 生成漏洞触发点检查结果。
支持的输入类型:
pom.xml - Maven 项目build.gradle - Gradle 项目.jar 文件 - 从文件名或 META-INF 提取依赖信息当目标是 .jar 或 .class 文件且无法直接提取依赖信息时,使用 CFR 反编译器(详见 java-shared/DECOMPILE_STRATEGY.md):
# 反编译单个文件
java -jar {CFR_JAR} /path/to/file.jar --outputdir {output_path}/decompiled
# 反编译目录
find /path/to/classes -name "*.class" | xargs java -jar {CFR_JAR} --outputdir {output_path}/decompiled
运行扫描脚本,报告自动保存到 {项目名}_audit/vuln_report/ 目录:
python3 scripts/scan_dependencies.py <目标路径> \
--rules references/java-vulnerability.yaml \
--no-deps
参数说明:
<目标路径>: pom.xml、build.gradle、jar 文件或目录--rules/-r: 漏洞规则文件路径(使用内置规则)--format/-f: 输出格式 (markdown/json)--output/-o: 指定输出路径(不指定则自动生成)--depth/-d: 模块分组深度(默认: 2)--no-deps: 不显示依赖列表(简化输出)--no-save: 仅输出到终端,不保存文件报告按模块分组,每个模块按严重级别分类:
扫描完成后,必须基于扫描结果,按照 references/OUTPUT_TEMPLATE.md 模板填充完整报告(单个文件)。
web.xml、struts.xml、application.yml、applicationContext.xml 等根据以下特征识别项目环境(参考 java-route-mapper 技能的识别策略):
Web 框架识别:
| 框架 | 识别特征 | 配置文件 | 关键依赖 |
|---|---|---|---|
| Spring MVC | @Controller、@RequestMapping、@RestController | dispatcher-servlet.xml、spring-mvc.xml | spring-webmvc.jar |
| Spring Boot | @SpringBootApplication、Spring Boot starter | application.properties、application.yml | spring-boot-starter-*.jar |
| Struts 2 | ActionSupport、\<action\> 配置 | struts.xml、struts-plugin.xml | struts2-core.jar |
| Servlet | HttpServlet、@WebServlet、\<servlet\> 配置 | web.xml | javax.servlet-api.jar |
| JAX-RS | @Path、@GET、@POST、@PathParam | web.xml(REST servlet 映射) | jersey-*.jar、cxf-rt-*.jar |
| CXF Web Services | @WebService、\<jaxws:endpoint\> | applicationContext.xml、cxf-servlet.xml | cxf-*.jar |
容器识别:
| 容器 | 识别特征 | 配置文件 |
|---|---|---|
| Tomcat | catalina.jar、org.apache.catalina | server.xml、context.xml |
| Jetty | jetty-*.jar、org.eclipse.jetty | jetty.xml、webdefault.xml |
| Undertow | undertow-*.jar、io.undertow | undertow-handlers.conf |
| WebLogic | weblogic.jar、weblogic.xml | weblogic.xml、weblogic-application.xml |
| WildFly/JBoss | jboss-*.jar、org.jboss | jboss-web.xml、standalone.xml |
框架组合识别:
多框架混合项目需要分别识别并检查:
struts-spring-plugin.jar 和 Spring 配置\<jaxws:endpoint\> 和 @Controller 共存web.xml 中的 filter-mapping 顺序规则文件 references/java-vulnerability.yaml 包含 130+ 条规则,覆盖:
| 组件类别 | 主要漏洞 |
|---|---|
| Log4j | CVE-2021-44228 (Log4Shell), CVE-2021-45046 |
| Fastjson | CVE-2022-25845, CVE-2017-18349 |
| Spring | CVE-2022-22965 (Spring4Shell), CVE-2022-22963 |
| Struts2 | S2-045, S2-046, S2-057, S2-061 |
| Shiro | CVE-2016-4437, CVE-2020-11989, CVE-2020-17510 |
| Jackson | CVE-2020-36518, CVE-2019-12384 |
| XStream | CVE-2021-39144 等 15 个 CVE |
| ActiveMQ | CVE-2023-46604 |
| JDBC 驱动 | MySQL, PostgreSQL, H2, Derby 等 |
# 1. 执行扫描
python3 scripts/scan_dependencies.py /path/to/webapp \
--rules references/java-vulnerability.yaml \
--no-deps
# 2. 输出示例:
# [INFO] 创建输出目录: webapp_audit/vuln_report
# [INFO] 报告已保存到: webapp_audit/vuln_report/webapp_vuln_report_20260204_101747.md
# 📊 扫描摘要:
# 模块数量: 4
# 依赖总数: 262
# 漏洞总数: 80
# 🔴 严重: 24
# 3. AI 自动读取报告并追加触发点检查结果
输出约束(不可违反):
- 输出为单个文件 — 不得拆分为多个文件
- 文件命名格式:
{project_name}_vuln_report_{YYYYMMDD_HHMMSS}.md- 必须严格按照
references/OUTPUT_TEMPLATE.md模板填充输出- 不得增删章节、不得调整章节顺序
输出模板: references/OUTPUT_TEMPLATE.md
{project_name}_audit/vuln_report/
└── {project_name}_vuln_report_{YYYYMMDD_HHMMSS}.md ← 仅此 1 个文件
├── 1. 扫描概述
├── 2. 风险统计
├── 3. 组件漏洞映射表
├── 4. 漏洞详情(含触发条件、危险代码、攻击向量、搜索命令)
└── 5. 审计结论
通用输出规范参考: java-shared/OUTPUT_STANDARD.md