2017年1月27日,WebLogic官方发布了一个编号为CVEID: CVE-2017-3248 的漏洞,影响为Critical。之前轰动一时的反序列化漏洞,官方当时的修补措施,在本漏洞中可被绕过。此次漏洞影响WebLogic版本如下图所示:
分析之前WebLogic漏洞CVE-2015-4852的补丁,发现WebLogic采用黑名单的方式过滤危险的反序列化类,如下图所示:
该漏洞影响WebLogic 10.3.6.0, 12.1.3.0,12.2.1.0, 12.2.1.1多个版本,并且官方仍未发布针对该漏洞的补丁,所以危害巨大。
WebLogic反序列化漏洞由于如前所述,其修补模式存在绕过可能性,引起不少圈内人士关注。曾在去年也被曝出过一个CVE-2016-0638漏洞,我们一并做个分析。
关于CVE-2016-0638,2016年4月11日pwntester在github放出了CVE-2016-0638的利用代码,地址:https://github.com/pwntester/SerialKillerBypassGadgetCollection/blob/master/src/main/java/serialkiller/bypass/Weblogic1.java 。
原理是将反序列化的对象封装进了weblogic.corba.utils.MarshalledObject,然后再对MarshalledObject进行序列化,生成payload字节码。反序列化时MarshalledObject不在WebLogic黑名单里,可正常反序列化,在反序列化时MarshalledObject对象调用readObject时对MarshalledObject封装的序列化对象再次反序列化,这样就逃过了黑名单的检查。部分利用代码如下所示:
由于官方未发布针对该漏洞的补丁,可更新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
转自微信公众号:ADLab
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞16
添加新评论1 条评论
2019-08-09 09:53