【漏洞复现】1. WebLogic 反序列化漏洞(CVE-2019-2890)复现与分析

本文深入剖析了OracleWebLogic服务器上CVE-2019-2890漏洞,涉及漏洞原理、环境搭建、验证、利用过程以及修复策略,帮助读者理解和应对这一远程代码执行威胁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 基础知识

在这里插入图片描述

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

Weblogic有以下几点优势:

  1. Weblogic支持最新的Java EE 8和Java SE 11规范,可以让开发者使用最新的技术和API来构建应用。
  2. Weblogic提供了丰富的管理工具和API,可以实现运营自动化,提高效率和可靠性。
  3. Weblogic支持自动扩展和自动重启故障节点,可以保证应用的高可用性和可扩展性。
  4. Weblogic提供了Kubernetes部署和管理工具,可以让开发者在容器化和云原生的环境中运行应用。
  5. Weblogic与Oracle数据库和中间件集成,可以提供优化的性能、可用性和可支持性。

2. 复现

2.1 漏洞介绍

2019年10月15日,Oracle官方发布了2019年10月安全更新公告,其中包含了一个可造成RCE远程任意代码执行的高危漏洞,漏洞编号为CVE-2019-2890。
Weblogic在利用T3协议进行远程资源加载调用时,默认会进行黑名单过滤以保证反序列化安全。本漏洞绕过了Weblogic的反序列化黑名单,使攻击者可以通过T3协议对存在漏洞的Weblogic组件实施远程攻击。由于T3协议在Weblogic控制台开启的情况下默认开启,而Weblogic默认安装会自动开启控制台,所以攻击者可通过此漏洞造成远程代码执行,以控制Weblogic服务器。
在这里插入图片描述

漏洞影响版本:

WebLogic Server 10.3.6.0
WebLogic Server 12.1.3.0
WebLogic Server 12.2.1.3

2.2 漏洞原理分析

漏洞代码位于weblogic.jar中weblogic.wsee.jaxws.persistence.PersistentContext.class文件,它的readObject函数调用了readSubject函数,readSubject函数中使用了ObjectInputStream.readObject来反序列化对象。
在这里插入图片描述
查看对应的writeObject的逻辑,只要我们给对应的localObjectOutputStream.writeObject()序列化一个恶意对象,则PersistentContext对象被反序列化时,它的readObject函数被调用,readSubject函数中对恶意对象进行反序列化。因此通过T3发送精心伪造的PersistentContext对象,则可成功绕过黑名单检查。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值