weblogic cve漏洞捡漏指南

admin 2021年4月21日15:53:50评论91 views字数 2964阅读9分52秒阅读模式

今天又是weblogic补丁日。这次补丁日中我成功捡漏一个cve漏洞。下面给大家分享一下怎么捡漏weblogic和怎么反馈给weblogic补丁。

既然我们谈到挖weblogic。weblogic框架非常大,初次接触的老哥可能无从下手不知道从哪里开始挖洞。我们可以从补丁来分析一下历史漏洞。这篇文章是我去年下半年在部门分享中讲过,现在分享给大家。在这里还有很多漏洞类型没有覆盖,这种情况不要见怪,这只是一个最基础的讲解。

1. weblogic 补丁分析指南

1.1 Opatch

在你挖到漏洞后,最好安装weblogic的最新补丁来校验一下你的exp是否在最新补丁下生效。weblogic使用Opatch来管理补丁。在某些补丁中,补丁包对于Opatch最小版本是有要求,这时候我们需要升级Opatch补丁号为 [28186730: OPATCH 13.9.4.2.4 FOR FMW/WLS 12.2.1.3.0, 12.2.1.4.0 AND 14.1.1.0.0]来解决这个问题weblogic cve漏洞捡漏指南

https://support.oracle.com/epmos/faces/PatchHome?_adf.ctrl-state=1cdjuh74ay_4&_afrLoop=92240149765348#

下载后,解压至任意文件夹 Windows 执行下面的命令java -jar opatch_generic.jar -J-Doracle.installer.oh_admin_acl=true -silent oracle_home=<ORACLE_HOME_LOCATION>

其它系统执行下面的命令java -jar <PATCH_HOME>/6880880/opatch_generic.jar -silent oracle_home=<ORACLE_HOME_LOCATION>

有不懂的,看压缩包里的Readme

1.2 Opatch 打补丁

下载补丁后,解压至任意文件夹即可 在Oracle_home 安装目录中,找到Opatch文件夹,执行升级操作即可 Opatch apply 补丁解压的文件夹(注意是最内层文件夹weblogic cve漏洞捡漏指南

1.3 下载补丁

我们只关心安全补丁,下面说下怎么下载补丁 登录Oracle support网站,找到Patchs&Updates 栏目,点击进去weblogic cve漏洞捡漏指南

查询条件,自己根据需要构造即可weblogic cve漏洞捡漏指南REC的补丁,并且被标记为security,且Generic Platform平台,即是补丁

注意,oracle每年发布四次安全补丁,安全补丁可以跨版本打,也就是说,老补丁同时也集成在新补丁中,这点一定注意。

1.4 weblogic 补丁分析方法

weblogic中的补丁,其实是一个个编译好的class文件,我们直接使用idea打开补丁文件夹,就可以利用idea的反编译功能区分析补丁。

补丁中,每个class文件,都对应weblogic 实际目录中的一个class文件,打补丁你可以认为强行替换weblogic 中相关jar包中的class文件。

下面讲一下分析要点。对于这种安全补丁中,只有关于weblogic自身的安全问题,才会在这里体现,一般第三方包的安全漏洞,不会在该补丁中。

1.4.1 weblogic 黑名单

直接看filesoracle.wls.jrf.tenancy.common.sharedlib12.2.1.4.0wls.common.symbolmodulescom.bea.core.utils.jarweblogicutilsio 文件夹下的WeblogicFilterConfig.class 文件

weblogic cve漏洞捡漏指南

因为weblogic 的漏洞,绝大多数都是T3协议、IIOP协议的java反序列化漏洞。而weblogic为了修复该漏洞,最简单的办法是设置反序列化黑名单并添加黑名单列表。如果反序列化时遇到的类存在于黑名单中,则中止反序列化过程。

我们只需要diff黑名单列表,自己研究构造poc即可。有的时候不一定是rce,也有可能是其他问题。

1.4.2 其他反序列化类

如果触发反序列化的类在正常业务中可能需要,或者因为其他原因不能屏蔽,weblogic的修复方法为直接修改相关的类。

如果一个类在readObject方法中,自己私自调用ObjectInputStream去执行反序列化操作而不是用weblogic提供的FilterInputStream执行反序列化操作,这样的话会导致weblogic的黑名单失效。这也就是反序列化中的反序列化漏洞,这种漏洞在weblogic中挺常见的。(不限于T3协议

例如 SOAPInvokeStat

weblogic cve漏洞捡漏指南

我们diff中,可以明显发现weblogic的补丁将ObjectInputStream更改为FilterInputStream。在weblogic中,只有FilterInputStream才会在反序列化的流程中检查黑名单类。

weblogic cve漏洞捡漏指南

然后,我们根据这个类中的参数,自己构造一个类即可。

在idea中,覆盖一个类最简单的办法是,在自己的项目中创建一个与被覆盖的类包名相同类名相同的类,然后修改你想要修改的代码即可。例如在这个反序列化中,我要修改writeExternal方法。直接强行替换成cve-2020-2555的gadget。

weblogic cve漏洞捡漏指南

1.4.3 T3反序列化 XXE

一般情况下该类漏洞都是在继承自Exterinalizable的类 中,在自定义序列过程时,将类的某些字段,作为XML去存储在反序列化的信息中。反序列化时候,读取序列化信息中相关的字符串作为XML去解析。解析的过程中没有考虑到XXE攻击。这次我捡漏的cve就是该类型的漏洞。

weblogic.wsee.security.wssc.sct.SCCredential#readExternal方法中weblogic cve漏洞捡漏指南

this.appliesTo是反序列化得到的字符串,如果以<![[]]>开头,就会调用DOMUtils.toXMLNode去解析。其实也就是当成xml解析,并且没有任何过滤。weblogic cve漏洞捡漏指南

poc如下weblogic cve漏洞捡漏指南

2. 向oracle提交漏洞

网上查了一圈,好像没有太多讲解,正好我在这里分享一下我的提交过程。

这个xxe cve-2020-2211漏洞,是我去年12月的某天晚上失眠而挖到的一个洞。别大惊小怪,就是一个简单的xxe。然后写邮件给oracle。oracle提交漏洞的邮箱是[email protected]

在邮件的主题中,注明你这次挖到的洞是什么类型。邮件要用英文书写,反正也别说乱七八糟的客套话,老外也看不懂。开门见山直接分析漏洞,扔给他poc,截几张图就行了。

![](https://potatso-1253210846.cos.ap-beijing.myqcloud.com/20210421131555.png

weblogic cve漏洞捡漏指南
weblogic cve漏洞捡漏指南

一般等两三天左右,oracle就会回复你的邮件并确认漏洞分配一个内部编号。随后再回复你一封邮件,告诉你不要将这个漏洞透露给任何人。weblogic cve漏洞捡漏指南weblogic cve漏洞捡漏指南

然后就坐等cve编号即可。我这个漏洞等了将近半年才发下cve编号。一般在oracle补丁日前两三天发邮件告诉你的cve编号,影响等等各种信息。

weblogic cve漏洞捡漏指南


至此,就获得一个cve编号。老铁们还不快点转发分享,下次再睡不着觉挖一个洞玩玩。

补丁已经放在星球中了,有需要的同学自取


weblogic cve漏洞捡漏指南



本文始发于微信公众号(阿乐你好):weblogic cve漏洞捡漏指南

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月21日15:53:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   weblogic cve漏洞捡漏指南http://cn-sec.com/archives/340125.html

发表评论

匿名网友 填写信息