WebLogic CVE-2021-2394 RCE 漏洞分析

本文详细分析了WebLogic Server的CVE-2021-2394远程代码执行漏洞,该漏洞通过二次反序列化,结合CVE-2020-14756和CVE-2020-14825的调用链,绕过黑名单实现。漏洞关键在于FilterExtractor类和SerializationHelper类的交互,导致安全绕过并触发RCE。
摘要由CSDN通过智能技术生成

在这里插入图片描述

漏洞简述

2021年3月15日墨云安全V-Lab实验室向Oracle官方报告了Weblogic Server RCE漏洞,2021年7月21日Oracle发布了致谢信息。

这是一个二次反序列化漏洞,是cve-2020-14756和cve-2020-14825的调用链相结合组成一条新的调用链来绕过weblogic黑名单列表。

漏洞分析

最开始我是发现了oracle.eclipselink.coherence.integrated.internal.cache.SerializationHelper类中的readAttributeAccessor方法

在这里插入图片描述

在这个方法中实例化了MethodAttributeAccessor类,在MethodAttributeAccessor类中的getAttributeValueFromObject方法存在反射调用

在这里插入图片描述

这里就是CVE-2020-14825的触发点,在14825中就是LockVersionExtractor和MethodAttributeAccessor的调用链来进行RCE的,这两个类都已经加入到黑名单列表中。而SerializationHelper类的readAttributeAccessor方法被FilterExtractor的readExternal方法调用了

在这里插入图片描述

最重要的是FilterExtractor类的extract方法和LockVersionExtractor类的extract方法一样都调用了getAttributeValueFromObject方法

在这里插入图片描述

那这里就产生绕过了,虽然LockVersionExtractor和MethodAttributeAccessor类都在黑名单列表里面,但是FilterExtractor类可以替代LockVersionExtractor类,并且在FilterExtractor类的readExternal方法调用了SerializationHelper.readAttributeAccessor,SerializationHelper.readAttributeAccessor方法中又实例化了MethodAttributeAccessor类。

但是这里还不能直接触发,FilterExtractor类的readExternal方法为DataInput类型不是ObjectInput,这里就要利用CVE-2020-14756前部分的调用链,简单来说14756是一个二次反序列化的调用链,WebLogic自身实现了一套readObject反序列化过程,自定义的这一套需要实现ExternalizableLite接口,它的readExternal参数是DataInput类型。

在这里插入图片描述

看下CVE-2020-14756前部分需要用到的调用链

compare:416, SortedBag W r a p p e r C o m p a r a t o r ( c o m . t a n g o s o l . u t i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值