fastjson 序列化 不包括转义字符_高危漏洞|Oracle Coherence&WebLogic反序列化远程代码执行漏洞(CVE20202555)...

045e5054-4d13-eb11-8da9-e4434bdf6706.jpeg

漏洞描述

近日,ZDI公布了一个Coherence反序列化漏洞,CVE编号为CVE-2020-2555,此漏洞是由于攻击者可以传入可控参数并调用java方法,在Java中,类中的readObject()或readExternal()方法可以被自动调用。

Oracle Coherence为Oracle融合中间件中的产品,在WebLogic 12c及以上版本中默认集成到WebLogic安装包中,T3是用于在WebLogic服务器和其他类型的Java程序之间传输信息的协议。

漏洞分析

通过补丁对比寻找漏洞利用点,攻击者可以使用受控参数来调用java方法。在Java中,会自动调用类的readObject()或者 readExternal()方法。这两种方法以及从它们内部可获得的任何其他方法都可以视为反序列化gadget的有效来源。

CVE-2020-2555的补丁中更改了LimitFilter类中的toString()方法:

065e5054-4d13-eb11-8da9-e4434bdf6706.png

extract()已从toString()中删除了对该方法的所有调用,toString()可以通过readObject()各种标准JRE类的方法来实现,例如

BadAttributeValueExpException:

095e5054-4d13-eb11-8da9-e4434bdf6706.png

如上面的代码所示,BadAttributeValueExpException该类的序列化实例可用于调用toString()任意类的方法。可以使用此技术访问受此补丁影响的LimitFilter类的toString()方法。

然后寻找Sink点,Sink点指的是具有各种副作用的Java方法调用,这类副作用包括:

  • 通过调用FileOutputStream.write()任意创建文件。

  • 通过调用Runtime.exec()任意执行命令。

  • 通过调用Method.invoke()的任意方法调用。

对于此漏洞,我们的重点就是调用,Method.invoke()该调用具有通过反射调用任意Java方法的副作用。 有了这些信息,我们可以查找所有实例,在这些实例中,extract()方法调用(我们在补丁分析中将其标识为入口点)导致对Method.invoke()的调用。 0b5e5054-4d13-eb11-8da9-e4434bdf6706.png

查看ReflectionExtractor类后,我们可以确认前面的猜测:

0c5e5054-4d13-eb11-8da9-e4434bdf6706.jpeg

ReflectionExtractor 通过允许调用任意方法来提供危险原语,其中方法和参数都可以由攻击者控制。

通常,需要多个方法调用才能实现远程代码执行。例如,在流行的Apache Commons Collections gadget中,是通过使用链接任意方法调用来实现的ChainedTransformer。以类似的方式,Coherence库中有一个类允许我们链接extract()调用,该类为ChainedExtractor:

0d5e5054-4d13-eb11-8da9-e4434bdf6706.png

将所有这些放在一起使用以下利用链来实现远程代码执行:

0e5e5054-4d13-eb11-8da9-e4434bdf6706.jpeg

因此,使用Coherence可以在恶意序列化对象库的任何项目都可以实现远程代码执行,针对WebLogic T3协议的漏洞验证:

105e5054-4d13-eb11-8da9-e4434bdf6706.png

漏洞危害

高危

影响版本

  • Oracle Coherence 3.7.1.17

  • Oracle Coherence 12.1.3.0.0

  • Oracle Coherence 12.2.1.3.0

  • Oracle Coherence 12.2.1.4.0

安全建议

参考Oracle官网发布的补丁进行升级:

https://www.oracle.com/security-alerts/cpujan2020.html 

如果不依赖T3协议进行JVM通信,禁用T3协议。

参考信息

https://www.thezdi.com/blog/2020/3/5/cve-2020-2555-rce-through-a-deserialization-bug-in-oracles-weblogic-server 

山石网科NEURON安全实验室成立于2015年,为多省公安厅提供技术支撑工作,为上合峰会、财富论坛、金砖五国等多次重大活动提供网络安保支撑工作。在多次攻防赛事中连获佳绩,网安中国行第一名,连续两届红帽杯冠军、网鼎杯线上第一名,在补天杯、极棒杯、全国多地的护网演习等也都获得优秀的成绩,每年获得大量的CNVD、CNNVD、CVE证书或编号。

如需帮助请咨询 hscert@hillstonenet.com

115e5054-4d13-eb11-8da9-e4434bdf6706.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值