长亭百川云 - 文章详情

【最新利用链】Weblogic DualHashBidiMap 反序列化漏洞分析

Beacon Tower Lab

85

2024-07-13

0x01 漏洞背景

Weblogic的反序列化漏洞一直以来都受到很多安全研究人员的青睐,但是随着Weblogic自身安全水平的提高,最近很长一段时间已经都没有出现高危的Weblogic反序列化漏洞了。今天想跟大家分享一条在之前的安全研究中发现的全新的Weblogic反序列化利用链,这条链在网上并没有被公开过,通过该利用链可以达到任意文件写入的效果,实现RCE。

0x02 漏洞分析

反序列化的入口是在org.apache.commons.collections.bidimap.DualHashBidiMap类的readObject方法。这里Map map = (Map)in.readObject();代表从类对象中获取一个Map类型的数据字段,而整个类中只有在父类AbstractDualBidiMap中存在Map[]类型的字段maps。所以需要通过控制maps字段来进行反序列化利用链的利用。

在本条利用链中,我们设置maps字段的值为[DeltaMap, null]。

这里调用了父类org.apache.commons.collections.bidimap.AbstractDualBidiMap的putAll方法。由于map类型是com.tangosol.coherence.component.util.DeltaMap,所以这里会继续调用DeltaMap类的entrySet方法。

在DeltaMap类的entrySet方法中调用entrySetImpl,由于this.isRepeatableRead()方法响应的结果为true,则会调用对应的this.ensureReadAll()方法。

在ensureReadAll()方法中会调用this.getReadMap()方法,这个方法会获取__m_ReadMap字段。所以在反序列化利用链中是通过构造__m_ReadMap字段的值来进行攻击传递,在本条利用链中,我们把__m_ReadMap字段赋值为com.bea.core.repackaged.aspectj.weaver.tools.cache.SimpleCache$StoreableCachingMap。

在ensureReadAll()方法中经过对Map类型数据的遍历,最终会调用SimpleCache$StoreableCachingMap类的put方法。

在SimpleCache$StoreableCachingMap类的put方法中,会调用本类的writeToPath方法。

writeToPath方法就是典型的文件写入操作,这就导致了任意文件写入的漏洞。

此利用链的核心在于DualHashBidiMap类,其实在2021年的时候就已经有大佬对DualHashBidiMap类的反序列化问题进行过分析https://mp.weixin.qq.com/s/LC5tdNHI3vGUWp8Ow5MQgw。文中提出了一种通过DualHashBidiMap类和TiedMapEntry类结合进行RCE的利用链,类似于CC6。可惜的是该利用方法并不适用于Weblogic,但我们可以通过本文的思路在Weblogic下进行文件写入,也能变相实现RCE的效果。

0x03 影响版本

该漏洞适用于2023.04 补丁之前的所有版本,在这之后Weblogic增加了白名单机制,只允许反序列化白名单中的类,因此整个利用链不能在最新的Weblogic环境中利用成功。但是整条利用链构思精巧,通过反序列化来达到任意文件写入也值得大家学习。

0x04 漏洞研究

为了方便不熟悉Java的小伙伴也能简单的研究这个漏洞,我们特意把整个漏洞利用过程封装成可独立运行的小工具,如下图所示。

其中要传递的第一个参数是目标IP,第二个参数是目标端口,第三个参数是要上传的文件的本地路径。

DayDayPoc已收录该poc检测工具,poc链接为:

https://www.ddpoc.com/DVB-2024-6934.html

此外DayDayPoc支持在线生成漏洞复现环境,Weblogic的版本可以用CVE-2023-21839这个漏洞的环境,环境链接为:

https://www.ddpoc.com/vulenv.html?keyword=Weblogic%E6%9C%AA%E6%8E%88%E6%9D%83%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%20(CVE-2023-21839)

在该环境下利poc验证截图如下:

此外烽火台实验室已联合产线发布DayDayMap全球网络空间资产测绘平台,通过https://www.daydaymap.com可以进一步评估该漏洞的影响范围。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2