CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

栏目: Java · 发布时间: 5年前

内容简介:该漏洞是在4月份

漏洞分析

该漏洞是 CVE-2019-2725 的绕过,因此前面的流程都是一样的,经过21个 handler 处理,最终进入 WorkAreaHeader

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

在4月份 oracle 对2725紧急补丁中,过滤了 class 元素,因此不能再通过 class 创建对象

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

这次的绕过实际上就是找到另外的元素代替 class 进而绕过补丁。

jdk7 中解析 xml 时获取 element 元素的相关类为 com.sun.beans.decoder.DocumentHandler

当传入 array 标签,进入 ArrayElementHandler ,为 array 元素添加属性时,只能从 lengthclassid 中选择,唯一能创建类的 class 已经加入了黑名单,所以在 jdk1.7 下不受此漏洞影响,这次的绕过出现在低于 jdk1.7java 版本上。

weblogic 10.3.6.0 自带的 jdk 版本为1.6, jdk1.6 中解析xml时有很大的不同,相关处理方法在 com.sun.beans.ObjectHandler

解析时首先进入的是 startElement 方法

该方法首先获取元素的属性并创建一个 hashmap ,当元素含有属性时,会根据属性值进行类/属性/方法的相关操作,当元素没有属性时,调用的是 new 方法,例如解析 <java><void> 时。而此时如果传入了 method 值就会把方法名设置为该值。

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

随后把方法名设置为我们传入的值,最终通过 forName 找到指定的类

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

之后的流程就和2725一样的了

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

进入 WorkContextXmlInputAdapter:readUTF() 后的调用栈

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

补丁分析

6月19日, Oralce 官方放出了该漏洞的补丁,详情见 这里

分析一下补丁

this.validate(new ByteArrayInputStream(baos.toByteArray()));
this.validateFormat(new ByteArrayInputStream(baos.toByteArray()));
this.xmlDecoder = new XMLDecoder(new ByteArrayInputStream(baos.toByteArray()));

在原来 validate 过滤的基础上又增加了一次 validateFormat 过滤,过滤方法如下

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

这回终于是采用了白名单方式, allowedName 如下

CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析

可以看到 allowedName 严格限制了可以使用的标签,并且也限制了标签可以拥有的属性,值得注意的是 allowedName 不再允许 field 标签了,emmm…

总结

这个漏洞是当时应急时简单分析的,后续有时间会详细整理一下。

从整个 XMLDecoder 反序列化漏洞的来看(CVE-2017-3506 -> CVE-2017-10271(10352) -> CVE-2019-2725 -> CVE-2019-2729),使用黑名单修补漏洞是不靠谱的,永远不知道下一次绕过是在什么时候,而这次的白名单修复方式会不会还存在缺陷呢?此处还得打一个问号。

Back to posts


以上所述就是小编给大家介绍的《CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入剖析Tomcat

深入剖析Tomcat

Budi Kurniawan、Paul Deck / 曹旭东 / 机械工业出版社华章公司 / 2011-12-31 / 59.00元

本书深入剖析Tomcat 4和Tomcat 5中的每个组件,并揭示其内部工作原理。通过学习本书,你将可以自行开发Tomcat组件,或者扩展已有的组件。 Tomcat是目前比较流行的Web服务器之一。作为一个开源和小型的轻量级应用服务器,Tomcat 易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模块。这些功能模块构成了Tomcat的核心结构。本书从最基本的HTTP请求开......一起来看看 《深入剖析Tomcat》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具