skills/java-vuln-scanner/SKILL.md
Java 组件版本漏洞检测工具。扫描 pom.xml、build.gradle 或 jar 文件中的第三方依赖,匹配已知漏洞规则(CVE)并生成漏洞检测报告。适用于:(1) Java 项目依赖安全审计,(2) 识别 Log4j、Fastjson、Shiro、Spring 等高危组件漏洞,(3) jar 包反编译后的依赖提取。支持按目录层级分组输出,支持通过 CFR 反编译 .class/.jar 文件提取依赖信息。
npx skillsauth add ruoji6/java-audit-skills java-vuln-scannerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
扫描 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
development
Java Web 源码 XXE (XML External Entity) 漏洞审计工具。从源码中识别所有 XML 解析操作并检测外部实体注入漏洞。适用于:(1) 识别 XML 解析器类型和实现方式,(2) 发现 XXE 注入漏洞,(3) 检查外部实体防护配置情况,(4) 审计 XML 输入来源与回显逻辑。支持 XMLReader、SAXBuilder、SAXReader、SAXParserFactory、DocumentBuilderFactory 五种主流解析器。**支持反编译 .class/.jar 文件提取 XML 解析逻辑**。结合 java-route-mapper 使用可实现完整的路由+XXE审计。
development
Java Web 源码 SQL 注入漏洞审计工具。从源码中定位所有 SQL 执行入口并检测注入漏洞。适用于:(1) 识别 SQL 执行框架和实现方式,(2) 发现 SQL 注入漏洞,(3) 检查参数化查询使用情况,(4) 检测动态 SQL 拼接漏洞。支持 JDBC、MyBatis、Hibernate 三种主流框架。**支持反编译 .class/.jar 文件提取 SQL 逻辑**。结合 java-route-mapper 使用可实现完整的路由+SQL注入审计。
development
Java Web 源码路由多层级调用链追踪工具。根据用户指定的路由路径,追踪从 Controller/Action 到 DAO 层的完整调用链,输出每一层的文件位置、方法签名和可传入参数。适用于多种漏洞类型的参数流向追踪:(1) SQL注入 - 追踪参数到SQL拼接点,(2) 命令注入 - 追踪参数到Runtime.exec(),(3) SSRF - 追踪参数到HTTP请求,(4) XSS - 追踪参数到响应输出,(5) 文件操作 - 追踪参数到File操作,(6) XXE/反序列化/LDAP注入/表达式注入等。支持 Spring MVC、Struts 2、Servlet、JAX-RS 等框架。**支持反编译 .class/.jar 文件提取调用链**。结合 java-route-mapper 使用可实现完整的路由+调用链审计。
development
Java Web 源码路由与参数映射分析工具。从源码中提取**所有** HTTP 路由和参数结构,并自动保存为 MD 文档。适用于:(1) 无 API 文档的项目完整接口梳理,(2) 下游漏洞审计 Skill 的路由数据源,(3) 源码端点完整分析。支持 Spring MVC、Servlet、JAX-RS、Struts 2、CXF Web Services 等框架。**必须输出所有接口,不省略任何内容,包括 Web Service 的完整 SOAP 方法**。