学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

2万

积分

41

好友

1157

主题
发表于 2020-10-18 20:04:46 | 查看: 5323| 回复: 1

相关题目:

  0x00:漏洞简介
该洞主要针对weblogic的coherence.jar中存在能够实现反序列化gadget构造的类,并且经过T3协议接收的数据经过反序列化处理后将导致漏洞的产生。
漏洞影响:
Oracle weblogic 12.1.3.0.0
Oracle weblogic 12.2.1.1.0
Oracle weblogic 12.2.1.2.0
Oracle weblogic 12.2.1.3.0
Oracle weblogic 12.2.1.4.0
0x01:漏洞分析:主要问题出现在LimitFilter类导致反序列化的安全问题。这个漏洞存在于一个Java方法中,攻击者将能够通过受控参数来调用该方法。
漏洞的gadget如下:

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

那么我将进行简单的分析:
反序列化入口(source):BadAttributeValueExpException.readObject()函数,这个在看大佬poc和ysoserial工具源码发现大多数poc也是以BadAttributeValueExpException触发的。

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

接下来在coherence.jar包的coherence/lib/coherence.jar/com/tangosol/util/filter/LimitFilter分析LimitFilter的代码发现在toString方法内部调用了ValueExtractor的extract 方法() 且m_oAnchorBottom是可控的。

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

之后发现Oracle Coherence库中提供了这样一个类,即ChainedExtractor,而这个类允许我们串联针对extract()方法的调用:coherence.jar包的coherence/lib/coherence.jar/com/tangosol/util/extractor/ChainedExtractor.class中如图。

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

而我们知道一般在挖掘发序列化的过程中除了要找到反序列化入口(source),还要触发漏洞的目标方法(sink)。

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

Method.invoke,这种需要适当地选择方法和参数,通过反射执行Java方法将runtime对象赋值给m_oAnchorTop,触发limitfilter中toString方法中的extractor函数从而执行命令。

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

0x03:漏洞复现
环境搭建:
实验环境:
weblogic :12.2.1.4.0
JDK 1.8.0_261
weblogic环境搭建:
1.首先需要java环境这里我安装的是JDK8

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

2.这里我下载的是weblogic12.1.4.0 https://www.oracle.com/middlewar ... lers-downloads.html(ps:本来先下载的12.1.3.0.0但怎么都无法执行命令,试了换很多版本jdk也没有用)
3.安装方式:java -jar fmw_12.1.4.0.0_wls.jar,就可以执行安装。
下载下来是个fmw_12.2.1.4.0_wls_lite_Disk1_1of1,解压后安装方式:java -jar fmw_12.1.4.0.0_wls.jar,就可以执行安装。
4.启动Weblogic安装界面。

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

5.安装完成就可以登录了

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

漏洞攻击复现:
POC:https://github.com/Y4er/CVE-2020-2555
1.首先下载下来之后通过IDEA打开CVE-2020-2555\src\com\supeream\CVE_2020_2555.java

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

2.运行idea生成.ser文件(项目自带的文件为攻击系统为linux时用的所以要重新编译)

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

3.之后运行py -2 weblogic_t3.py 服务器ip  7001  test1.ser  弹出计算器 攻击执行成功。

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析

cve-2020-2555Oracle Coherence&WebLogic反序列化远程代码执行漏洞分析



温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046

    发表于 2021-11-15 06:20:42
    谢谢分享谢谢分享

    小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

    GMT+8, 2024-4-26 22:37 , Processed in 0.092593 second(s), 45 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表