entity framework 调用 oracle 序列_Weblogic T3 反序列化漏洞(CVE20192890 )分析

本文介绍了CVE20192890漏洞的起因、原理和利用过程,涉及Weblogic T3协议的反序列化问题,通过分析 PersistenContext 类的readSubject方法,揭示了如何构造恶意序列化对象并绕过加密检查,最后讨论了漏洞修复方法。
摘要由CSDN通过智能技术生成

No.1

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.2

起因

    本文仅记录一下自己调试2890的一些过程,网上已经有两篇公开的文章了,所以自己上手调了一下这个漏洞,发现真的是个弟中弟的漏洞。

No.3

漏洞原理

    T3反序列化关键字还是 readObject ,所以补丁下来的第一时间,我全部反编译了,但是由于之前没有研究过weblogic,历史补丁没怎么留存,如果通过diff对比更新的方式会很快定位,所以只能反编译后搜。

    之前T3反序列化的入口有 StreamMessageImpl、MarshalledObject 等,而且修复方式也是采用 resolveClass 或者 resolveProxyClass 处增加黑名单的校验的方式来修复,因此基于这两点实际上很好定位漏洞位置:
1、入口有 readObject 反序列化,
2、resolveClass 或者 resolveProxyClass 处有名单校验,且类不是之前修复过的类。

    基于上述这两种情况很快定位到了 PersistenContext 这个类。

039afa80038c795ae63c7e2e29b29a29.png 7b5cc7919d0d65191ab3f9bd7ce6d9f8.png

    再回头翻一下 weblogic 原来的代码,嗯确实入口在这,在 readSubject 方法中,首先会读取var1中的反序列化数据,然后调用EncryptionUtil.decrypt方法进行解密,最后再触发反序列化。

279cf8b198a21dbb36830e2cc6117dc8.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值