weblogic系列漏洞整理————6、反序列化漏洞(CVE-2017-3248)

0x01 漏洞描述

2017年1月27日,WebLogic 官方发布了一个编号为 CVEID: CVE-2017-3248 的漏洞,影响为 Critical 。之前轰动一时的反序列化漏洞,官方当时的修补措施,在本漏洞中可被绕过。此次漏洞影响 WebLogic 版本如下图所示:

0x02 漏洞分析与验证

分析之前 WebLogic 漏洞 CVE-2015-4852 的补丁,发现 WebLogic 采用黑名单的方式过滤危险的反序列化类,如下图所示:

但是这种修复方式很被动,存在被绕过的风险,只要发现可用并且未在黑名单之外的反序列化类,那么之前的防护就会被打破,系统遭受攻击。这次发布的 CVE-2017-3248 就是利用了黑名单之外的反序列化类,通过 JRMP 协议达到执行任意反序列化 payload。(Java远程消息交换协议 JRMP 即 Java Remote MessagingProtocol ,是特定于 Java 技术的、用于查找和引用远程对象的协议。这是运行在 Java 远程方法调用 RMI 之下、TCP/IP 之上的线路层协议。)

启明星辰 ADLab 通过对本漏洞的深度分析,构造了对应的 POC 并测试验证成功,具体验证情况如下:

测试环境:WebLogicServer 10.3.6.0.160719 ,已经打了 “Patch 23094342” 补丁。  

测试过程:使用自制漏洞利用工具对测试系统进行漏洞利用测试。

第一步:监听 JRMP 协议端口

第二步:通过 T3 协议发送反序列化 payload

第三步:在 WebLogic 服务器上成功弹出计算器

0x03 漏洞影响

该漏洞影响 WebLogic 10.3.6.0, 12.1.3.0,12.2.1.0, 12.2.1.1 多个版本,并且官方仍未发布针对该漏洞的补丁,所以危害巨大。

0x04 漏洞对比

WebLogic 反序列化漏洞由于如前所述,其修补模式存在绕过可能性,引起不少圈内人士关注。曾在去年也被曝出过一个 CVE-2016-0638 漏洞,我们一并做个分析。

关于CVE-2016-0638,2016年4月11日 pwntester 在 github 放出了 CVE-2016-0638 的利用代码,地址

原理是将反序列化的对象封装进了 weblogic.corba.utils.MarshalledObject,然后再对 MarshalledObject 进行序列化,生成 payload 字节码。反序列化时 MarshalledObject 不在 WebLogic 黑名单里,可正常反序列化,在反序列化时 MarshalledObject 对象调用 readObject 时对 MarshalledObject 封装的序列化对象再次反序列化,这样就逃过了黑名单的检查。部分利用代码如下所示:

在打过 CVE-2015-4852 补丁的系统成功复现,如下图所示:

说明该漏洞可以绕过 CVE-2015-4852 这个漏洞的补丁,但是在测试 WebLogicServer 10.3.6.0.160719打了这个补丁时并未触发,直接抛出异常如下图所示:

可以看到 weblogic.corba.utils.MarshalledObject 已经加入了黑名单。   

0x05 漏洞修复

由于官方未发布针对该漏洞的补丁,可更新 p25388747_1036_Generic(10.3.6.0.170418)这个官方最新的补丁,除此之外其它补丁均不安全。经测试打了该补丁以后漏洞不能直接触发,但也只是缓解办法,未来仍要关注 WebLogic 官方补丁。

几点建议:
1. 升级 JDK 版本。由于 Java 在今年一月份以后更新了反序列化防御接口,可以缓解反序列化漏洞的影响。
2. 升级 WebLogic 、删除不需要的页面,清理不安全的第三方库。

漏洞相关: http://www.oracle.com/technetwork/security-advisory/cpujan2017-2881727.html http://www.cnvd.org.cn/flaw/show/CNVD-2017-00919

补丁汇总: http://blog.csdn.net/u013054618/article/details/71107100

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值