漏洞简介:
该洞主要针对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
二、漏洞分析:主要问题出现在LimitFilter类导致反序列化的安全问题。这个漏洞存在于一个Java方法中,攻击者将能够通过受控参数来调用该方法。
漏洞的gadget如下:
反序列化入口(source):BadAttributeValueExpException.readObject()函数,这个在看大佬poc和ysoserial工具源码发现大多数poc也是以BadAttributeValueExpException触发的。
接下来在coherence.jar包的coherence/lib/coherence.jar/com/tangosol/util/filter/LimitFilter分析LimitFilter的代码发现在toString方法内部调用了ValueExtractor的extract 方法() 且m_oAnchorBottom是可控的。
而我们知道一般在挖掘发序列化的过程中除了要找到反序列化入口(source),还要触发漏洞的目标方法(sink)。
Method.invoke,这种需要适当地选择方法和参数,通过反射执行Java方法将runtime对象赋值给m_oAnchorTop,触发limitfilter中toString方法中的extractor函数从而执行命令。
三、漏洞复现
环境搭建:
实验环境:
weblogic :12.2.1.4.0
JDK 1.8.0_261
weblogic环境搭建:
1.首先需要java环境这里我安装的是JDK8
2.这里我下载的是weblogic12.1.4.0 https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html(ps:本来先下载的12.1.3.0.0但怎么都无法执行命令,试了换很多版本jdk也没有用)
安装方式: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,就可以执行安装。
启动Weblogic安装界面。
3.一直默认就可以了,注意要记住自己设置的密码
5.安装完成就可以登录了
漏洞攻击复现:
POC:https://github.com/Y4er/CVE-2020-2555
1.首先下载下来之后通过IDEA打开CVE-2020-2555\src\com\supeream\CVE_2020_2555.java
2.运行idea生成.ser文件(项目自带的文件为攻击系统为linux时用的所以要重新编译)
3.之后运行py -2 weblogic_t3.py 服务器ip 7001 test1.ser 弹出计算器 攻击执行成功。
本文作者:hatjwe
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/141869.html