新西兰服务器

WebLogic远程代码执行漏洞CVE-2020-14644的分析是怎么进行的


WebLogic远程代码执行漏洞CVE-2020-14644的分析是怎么进行的

发布时间:2021-12-27 18:52:22 来源:高防服务器网 阅读:92 作者:柒染 栏目:安全技术

本篇文章给大家分享的是有关WebLogic远程代码执行漏洞CVE-2020-14644的分析是怎么进行的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、漏洞分析

1.1 WebLogic组件介绍

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。

1.2 漏洞描述

Oracle官方在2020年7月份发布的最新安全补丁中披露此漏洞。该漏洞允许未经身份验证的攻击者通过IIOP,T3进行网络访问,未经身份验证的攻击者成功利用此漏洞可能接管Oracle WebLogic Server。CVSS评分9.8。

1.3 漏洞分析

以WebLogic12.1.4.0作为漏洞环境进行分析,首先poc调用ClassIdentity构造方法,将构造的恶意类信息存入m_sPackage,m_sBaseName,m_sVersion三个属性中。

使用Javassist类库获取构造的恶意类的字节流。并调用ClassDefinition构造方法,将获取的恶意字节流存入m_abClass属性中。

调用RemoteConstructor构造函数,将上述获取到的属性,传入m_definition属性中。

在反序列化过程中,序列化数据会进入到RemoteConstructor类中的readResolve()方法中,调用newInstance()方法。并进入realize方法中。

在此方法中,由于调用的getRemotableClass()方法中的m_clz属性使用transient关键字,在反序列化过程中,此属性值为null。在经过两个if判断条件后,执行

definition.setRemotableClass(this.defineClass(definition));

代码语句。

在defineClass方法中获取恶意类,及其恶意字节流数据,调用父类ClassLoader的defineClass方法,实现自定义ClassLoader的创建。在加载过程中执行恶意代码,实现攻击。

1.4 漏洞复现

搭建WebLogic12.1.4.0漏洞环境,构造恶意的反序列化数据,通过T3发送到目标服务器,当目标服务器解析反序列化数据,会触发恶意代码执行,效果如图:

二、影响范围

目前受影响的WebLogic版本:

WebLogic Server 12.1.3.0.0

WebLogic Server 12.2.1.3.0

WebLogic Server 14.1.1.0.0

三、解决方案

3.1修复建议

1.官方已经针对此漏洞发布补丁,请受影响的用户参考以下链接安装补丁更新:https://www.oracle.com/security-alerts/cpujul2020.html

3.2临时修复建议

1.可通过关闭IIOP协议对此漏洞进行临时防御。操作如下:

在WebLogic控制台中,选择“服务”->”AdminServer”->”协议”,取消“启用IIOP”的勾选。并重启WebLogic项目,使配置生效。

2.对T3服务进行控制

控制T3服务的方法:

在上图这个WebLogic界面中选择安全-筛选器,在下方出现的界面中找到“连接筛选器”,在里面输入

security.net.ConnectionFilterImpl

然后在连接筛选器规则中输入

127.0.0.1 * * allow t3 t3s,0.0.0.0/0 * * deny t3 t3s

最后保存并重启服务器即可生效。

以上就是WebLogic远程代码执行漏洞CVE-2020-14644的分析是怎么进行的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注高防服务器网行业资讯频道。

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[