| name | java-exploit-chain |
| description | Java 白盒审计漏洞利用链组装。当需要将 Java 审计中发现的多个漏洞组合为完整攻击路径、
或需要评估 Maven/Gradle 依赖中的已知 CVE 对项目的实际影响时触发。
核心: 单个中低危漏洞通过组合可升级为高危/Critical 利用链。
覆盖: 信息泄露→认证绕过→RCE 的典型链路、Gadget Chain 分析方法(ysoserial/marshalsec)、
Maven 依赖 CVE 审计与实际可利用性评估。
|
| metadata | {"tags":"exploit chain, gadget chain, ysoserial, marshalsec, maven, dependency audit, cve, 利用链, 漏洞组合, 攻击路径, java source audit","category":"code-audit"} |
Java 漏洞利用链组装
白盒利用链组装 = 在源码层面验证多漏洞串联的可行性。工作范围是: 从已发现的单点漏洞出发,分析它们之间的因果关系和数据流衔接,评估组合后的实际危害等级。构造远程 exploit、发送 payload、绕过 WAF 等运行时黑盒利用技术属于对应 exploit skill 范畴。
深入参考
利用链组装原则
三阶段模型: 信息收集(INFO)→ 权限获取(AUTH)→ 代码执行(RCE)
每条利用链按三阶段拆解,每个阶段的输出必须满足下一阶段的前置条件。任何一个环节断裂则链路不成立。
评分规则: 链整体严重度 = 最终效果严重度 x 链路可行性系数(0.6-1.0)
- 全路径可行、无额外条件: 系数 1.0
- 需特定配置或低概率条件: 系数 0.8
- 强环境依赖(特定 JDK 版本、关闭 SecurityManager 等): 系数 0.6
证据要求: 每个环节必须有 EVID 证据支撑(代码位置、配置项、数据流截断点),不可凭推测补全链路。
Maven/Gradle 依赖 CVE 审计
依赖清单提取:
- Maven:
mvn dependency:tree -DoutputType=dot 生成完整依赖图
- Gradle:
gradle dependencies --configuration runtimeClasspath 列出运行时依赖
- 自动化: OWASP Dependency-Check 插件集成到 CI,生成 HTML/JSON 报告
NVD/GitHub Advisory 交叉比对: 使用 NVD API 或 GitHub Advisory Database 查询依赖的 CPE 匹配 CVE。
关键判断 — 有 CVE 不等于可利用:
- 版本匹配: 确认项目使用的版本确实在受影响范围内(注意传递依赖可能引入不同版本)
- 代码路径可达: 漏洞触发代码是否在项目的实际调用链中(依赖了库但未使用漏洞函数则不可利用)
- 攻击面暴露: 漏洞入口是否对外可达(内部工具类 vs 面向用户的 API)
高频危险依赖: commons-collections 3.x、fastjson <1.2.83、log4j-core 2.0-2.17.0、shiro <1.2.5、struts2 2.0-2.5.30、spring-cloud-gateway <3.1.1、jackson-databind <2.13.4
Gadget Chain 分析方法
- classpath 扫描: 从
pom.xml/build.gradle 及 WEB-INF/lib 确认目标环境中存在哪些可用 Gadget 库及版本
- ysoserial payload 选择: 根据 classpath 依赖匹配可用链(CommonsCollections1-7、BeanShell、Groovy、Spring、Hibernate 等),选择触发效果(命令执行 / JNDI lookup / 文件写入)
- marshalsec 用于 JNDI 利用: 搭建恶意 LDAP/RMI 服务 → 目标 JNDI lookup 触发远程类加载 → RCE;注意 JDK 版本限制
- 自定义 Gadget 发掘: 当标准链不可用时,在项目代码中搜索
readObject/readResolve/readExternal 重写,追踪其中的危险操作(反射调用、文件 I/O、Runtime.exec、JNDI lookup),尝试构造项目特有的 Gadget Chain
典型利用链模式(5 种)
| 编号 | 链路 | 最终效果 | 典型系数 |
|---|
| 1 | Actuator 信息泄露 → 密钥提取 → 伪造 JWT → 管理员越权 → RCE | Critical | 0.8 |
| 2 | Shiro RememberMe 默认密钥 → 反序列化 → RCE | Critical | 1.0 |
| 3 | 文件读取(路径穿越) → 配置泄露(DB 凭据) → SQL 注入写文件 → WebShell | Critical | 0.8 |
| 4 | SSRF → 内网服务探测 → 未授权 Redis → 写 crontab → 反弹 Shell | High | 0.6 |
| 5 | SpEL 注入 → RCE(单点链路,条件苛刻需验证 EvaluationContext 类型) | Critical | 0.8 |
每条链的前置条件、完整步骤、证据要求和降级方案详见 chain-patterns.md。
链路可行性验证清单
检测清单