首页
社区
课程
招聘
[原创]【最新利用链】Weblogic DualHashBidiMap 反序列化漏洞分析
发表于: 2024-5-11 16:23 2135

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

2024-5-11 16:23
2135

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类的反序列化问题进行过分析08aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0M7q4)9J5k6i4N6W2K9i4S2A6L8W2)9J5k6i4q4I4i4K6u0W2j5$3!0E0i4K6u0r3M7#2)9J5c8V1I4o6y4i4c8V1e0V1S2u0x3%4k6s2g2g2N6H3z5p5!0%4y4f1#2c8k6%4N6Q4c8e0y4Q4z5o6m8Q4z5o6u0Q4c8e0k6Q4z5e0k6Q4z5o6N6Q4c8e0c8Q4b7U0S2Q4b7f1c8Q4c8e0k6Q4z5p5k6Q4z5e0m8Q4c8e0g2Q4z5o6N6Q4b7V1q4Q4c8e0c8Q4b7V1q4Q4z5o6k6Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0N6Q4b7e0N6Q4z5p5c8Q4c8e0W2Q4z5o6m8Q4z5f1q4Q4c8e0S2Q4b7V1k6Q4z5o6N6p5N6h3q4D9d9r3q4K6K9p5u0A6k6r3W2y4j5i4m8Q4c8e0N6Q4b7U0q4Q4b7V1u0Q4c8e0g2Q4z5e0u0Q4z5p5y4f1K9h3g2V1e0h3q4H3c8h3&6@1M7Y4W2Q4c8e0N6Q4b7U0q4Q4b7V1u0Q4c8e0N6Q4b7V1u0Q4z5e0y4Q4c8e0g2Q4z5e0m8Q4z5o6S2Q4c8e0S2Q4b7V1k6Q4z5f1u0Q4c8e0S2Q4b7e0q4Q4z5p5y4d9b7@1g2Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0g2Q4z5o6S2Q4b7e0W2Q4c8e0N6Q4z5e0c8Q4b7e0S2Q4c8e0W2Q4z5e0y4Q4b7V1g2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0N6Q4b7U0q4Q4b7V1u0Q4c8e0c8Q4b7V1y4Q4b7V1y4Q4c8e0c8Q4b7V1q4Q4z5p5g2o6b7K6k6Q4c8e0y4Q4z5o6m8Q4z5o6u0Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0k6Q4z5o6y4Q4z5f1y4Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0k6Q4z5e0S2Q4b7f1k6Q4c8e0S2Q4b7f1k6Q4b7e0g2Q4c8e0g2Q4z5o6S2Q4b7e0W2Q4c8e0N6Q4z5e0c8Q4b7e0S2Q4c8e0k6Q4z5e0k6Q4b7U0W2Q4c8e0k6Q4b7U0y4Q4z5e0g2Q4c8e0g2Q4b7U0W2Q4b7U0k6Q4c8e0c8Q4b7U0S2Q4z5p5c8Q4c8e0W2Q4z5o6m8Q4z5o6u0Q4c8e0N6Q4z5e0c8Q4b7e0S2Q4c8e0c8Q4b7V1q4Q4z5p5g2i4k6h3u0D9L8$3N6A6j5#2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4q4!0n7c8q4)9^5y4W2!0q4y4W2)9^5z5q4)9&6x3g2!0q4y4q4!0n7b7W2!0m8b7#2!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4q4!0n7b7W2!0m8y4g2!0q4z5g2)9^5x3q4)9&6b7g2!0q4z5q4!0n7c8W2)9^5y4#2!0q4y4W2)9&6b7#2!0m8b7#2!0q4y4W2)9&6y4W2)9^5y4#2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4W2)9^5x3q4)9&6c8q4!0q4z5q4!0n7y4#2!0m8c8W2!0q4y4g2)9&6b7#2!0m8z5q4N6W2j5X3I4G2k6$3W2U0i4@1f1@1i4@1t1^5i4K6S2n7i4@1f1^5i4@1u0r3i4K6W2n7i4@1f1^5i4@1p5I4i4K6S2o6i4@1f1$3i4K6V1$3i4K6R3%4i4@1f1@1i4@1u0n7i4@1t1$3i4@1f1#2i4K6R3$3i4K6V1&6i4@1f1#2i4K6R3#2i4@1p5#2i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1@1i4@1t1&6i4K6W2r3i4@1f1^5i4K6R3K6i4@1u0p5i4@1f1#2i4K6S2r3i4K6V1^5i4@1f1%4i4K6W2n7i4@1t1^5i4@1f1#2i4@1q4q4i4K6W2q4i4@1f1%4i4K6S2q4i4@1t1H3f1V1y4q4i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1$3i4K6V1#2i4K6R3^5i4@1f1$3i4K6W2q4i4K6W2o6i4@1f1K6i4K6R3H3i4K6R3J5

0x03 影响版本

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

0x04 漏洞研究

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

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

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

270K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1k6s2m8G2j5#2)9J5k6h3y4G2L8g2)9J5c8V1c8h3b7W2)9J5k6o6t1H3x3U0c8Q4x3X3b7$3z5e0x3@1i4K6u0W2K9s2c8E0L8l9`.`.

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

8e4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1k6s2m8G2j5#2)9J5k6h3y4G2L8g2)9J5c8Y4k6#2L8r3g2F1N6W2)9J5k6h3S2@1L8h3I4Q4x3@1k6C8k6i4W2%4L8%4u0V1i4K6y4p5g2$3g2T1L8r3!0Y4K9h3y4Q4x3U0g2q4y4W2)9J5y4e0W2o6i4K6t1#2b7f1q4Q4x3U0g2q4y4W2)9J5y4e0S2q4i4K6t1#2z5o6S2Q4x3U0g2q4y4W2)9J5y4e0W2p5i4K6t1#2z5o6y4Q4x3U0g2q4z5q4)9J5y4f1u0r3i4K6t1#2z5f1y4Q4x3U0g2q4y4#2)9J5y4f1p5^5i4K6t1#2z5p5u0Q4x3U0g2q4y4q4)9J5y4f1u0n7i4K6t1#2b7e0y4Q4x3U0g2q4y4#2)9J5y4f1p5H3i4K6t1#2z5o6q4Q4x3U0g2q4y4W2)9J5y4e0R3&6i4K6t1#2b7e0N6Q4x3U0g2q4z5q4)9J5y4f1p5I4i4K6t1#2z5p5y4Q4x3U0g2q4y4W2)9J5y4f1u0o6i4K6t1#2z5p5k6Q4x3U0g2q4y4W2)9J5y4f1t1@1i4K6t1#2z5f1g2Q4x3U0f1J5x3q4)9J5z5p5y4h3c8g2)9J5k6o6t1H3x3U0y4Q4x3X3b7J5x3e0R3K6z5g2)9J5z5b7`.`.

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

此外烽火台实验室已联合产线发布DayDayMap全球网络空间资产测绘平台,通过64fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1j5i4W2V1j5i4W2E0j5i4m8Q4x3X3g2U0L8$3#2Q4c8e0g2Q4z5p5k6Q4b7f1k6Q4c8e0c8Q4b7V1u0Q4b7e0g2Q4c8e0S2Q4b7V1k6Q4z5f1u0Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0k6Q4b7f1c8Q4b7e0g2Q4c8e0S2Q4b7f1k6Q4z5o6c8Q4c8e0c8Q4b7V1y4Q4b7U0m8Q4c8e0S2Q4b7f1k6Q4b7e0g2Q4c8e0k6Q4b7V1y4Q4z5p5k6Q4c8e0k6Q4b7U0c8Q4z5f1g2Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0g2Q4b7V1c8Q4b7U0q4Q4c8e0g2Q4z5e0y4Q4z5p5c8Q4c8e0S2Q4z5p5y4Q4z5o6y4Q4c8e0g2Q4z5f1u0Q4b7U0c8Q4c8e0y4Q4z5o6m8Q4z5o6t1`.

原文链接


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回