本篇文章给大家分享的是有关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的分析是怎么进行的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/221472.html