CNTA-2019-0014 wls9-async 反序列化 rce 分析

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

内容简介:漏洞编号:CNTA-2019-0014大致是因为 wls9_async_response 包有个啥反序列化,上一次同样类型的漏洞在17年,那时候还不知道weblogic,刚好论文结尾了来学习下漏洞原理XmlDecoder 相关安全不在此篇文章中介绍,也莫得poc,仅仅分享分析思路和漏洞触发流程

前言

漏洞编号:CNTA-2019-0014

大致是因为 wls9_async_response 包有个啥反序列化,上一次同样类型的漏洞在17年,那时候还不知道weblogic,刚好论文结尾了来学习下漏洞原理

XmlDecoder 相关安全不在此篇文章中介绍,也莫得poc,仅仅分享分析思路和漏洞触发流程

高版本weblogic如12.2.1.2默认不会部署该war包,我的测试版本是10.3.6

调用链

BaseWSServlet#service

->

SoapProcessor#process

->

ServerDispatcher#dispatch

->

HandlerIterator#handleRequest

->

WorkAreaServerHandler#handleRequest

->

WorkContextMapInterceptor#receiveRequest

->

WorkContextXmlInputAdapter#readUTF

->

XMLDecoder#readObject

起手式

莫得poc,莫得漏洞详情,就一则安全通告说 wls9_async_response 有问题,那就先直接看war包啥情况

CNTA-2019-0014 wls9-async 反序列化 rce 分析

其实就四个class,而且路径全部指向 AsyncResponseBean ,查看一下内容如下:

CNTA-2019-0014 wls9-async 反序列化 rce 分析

路径已经指出来了 /_async/.. 全部指向此 Bean,但是细看类成员函数的时候就只有俩:

handleFaulthandleResult

从这个名字来看,属于已经结束处理流程了,正在处理异常和结果,这里稍微想了想如果是soap过去的反序列化的话,那应该是处理流程中触发漏洞,为了确认仔细看了下 handleFault 和 handleResult 函数,确实没有触发点,既没有反序列化点

从底层摸起

那么这就奇怪了,难道不是war包的问题?找一找处理流程,但是weblogic没有详细分析过不知道整个生命周期,只能从 HttpServlet 开始下断点,中间的迷障也太多了,先整理下已知信息:

包路径:weblogic.wsee.async
那么处理流程大概也会是 async 路径下或者 wsee 路径下处理的请求包

该漏洞多半是soap协议过去的xml反序列化

打了个 HttpServlet 处的断点,跟进了 weblogic.wsee 包下的基础 Servlet : BaseWSServlet

CNTA-2019-0014 wls9-async 反序列化 rce 分析

根据已知信息那必然在 soapProcessor 中,一直跟到了 web.wsee.ws.dispatch.server.ServerDispatcher 里面,注意如下:

CNTA-2019-0014 wls9-async 反序列化 rce 分析

责任链出来了,跟进去看看 HandlerIterator#handleRequest

CNTA-2019-0014 wls9-async 反序列化 rce 分析

责任链中轮询调用 handleRequest 处理。

看一看这个 HandlerIterator 中有哪些 Handler

CNTA-2019-0014 wls9-async 反序列化 rce 分析

如图一共有21个,其中最让我起疑的就是 AsyncResponseHandler 但是仔细看了以后发现没有过于特殊的地方,并且需要前置条件太多,也就是需要用户填写的信息过多,其中很多信息不一定是每个服务器上都一样的。排除它。

柳暗花明

既然是责任链调用,那么他会从 Handler 0 一直执行到 Handler 20,挨个查阅了后,发现大多是对环境的各种值做存取操作,并没有特殊的地方,但是 WorkAreaServerHandler 这个handler除外,跟进去看看

CNTA-2019-0014 wls9-async 反序列化 rce 分析

获取了一次header中的内容,这个header不是http header,是soap中的 http://schemas.xmlsoap.org/soap/envelope/ 内容里面的 Header,将其送入 WorkContextXmlInputAdapter 做初始化处理并且传入 receiveRequest 函数

跟进 receiveRequest 函数,如下:

CNTA-2019-0014 wls9-async 反序列化 rce 分析

跟进 readEntry 函数,如下:

CNTA-2019-0014 wls9-async 反序列化 rce 分析

这里调用了 WorkContextXmlInputAdapter 的 readUTF 函数,跟进,如下:

CNTA-2019-0014 wls9-async 反序列化 rce 分析

readObject 映入眼帘

分析流程结束

效果

尝试构造了一下poc,10.3.6 本地未加任何补丁,win10

CNTA-2019-0014 wls9-async 反序列化 rce 分析


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

大数据经济

大数据经济

谢文 / 北京联合出版公司·后浪出版公司 / 2016-1 / 32.00元

中国互联网数朝元老、中国的“凯文·凯利”首度深度剖析大数据的大机会 大数据纳入中国国家行动方略,大数据产业起飞在即 陈彤、胡舒立、王巍鼎力推荐 ................... ※编辑推荐※ ★ 雅虎中国前总裁、中国互联网第一预言家——谢文,首部大数据力作。本书作者是中国互联网业第一代创业者,历任和讯网总裁、雅虎中国总裁、一起网CEO,亲身经历中国互联网发展全过......一起来看看 《大数据经济》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

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

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器