【漏洞分析】CVE-2017-3506 & 10271:Weblogic 远程代码执行漏洞分析及复现笔记

释放双眼,带上耳机,听听看~!
​本文转载自:https://zhuanlan.zhihu.com/p/32301092 0x00前言几天前,国内外的几家安全厂商都在陆续跟进这个漏洞。我本人并不擅长Java相关的安全问题,但看到近年来无论是Struts2、Spring还是weblogic这些都相继曝出过高危漏洞。便想着

​本文转载自:https://zhuanlan.zhihu.com/p/32301092 

0x00 前言

几天前,国内外的几家安全厂商都在陆续跟进这个漏洞。我本人并不擅长Java相关的安全问题,但看到近年来无论是Struts2、Spring还是weblogic这些都相继曝出过高危漏洞。便想着跟着分析一波,学习下。分析下漏洞的原理,有句古话说的好,谋上者居其中,谋中者居其下。那着挖0day的心,把漏洞分析清楚了,最后哪怕没有0day,但是可以根据漏洞补丁分析出漏洞成因,根据exploit可以稳准狠的搞定目标服务器,也算是一种收获吧。

如果你也正在分析这个漏洞,并且恰好看到了这篇文章,希望你看了这篇文章后能有所收获,同时如有谬误,还请不吝赐教。

0x01 基础环境

WebLogic 10.3.6.0

Windows 7 x64

JDK 1.8.0_144

PoC

JD-GUI

作为一个新玩家,要想分析一个漏洞,两样东西是必不可少的,1个是存在漏洞的环境(用于还原漏洞现场),另1个是相应的PoC。

WebLogic 10.3.6.0下载地址:oracle.com/technetwork/

0x02 漏洞复现

这里直接拿指尖安全的Bearcat师傅给我的exploit做演示了,感谢Bearcat师傅对我的帮助。

v2-ab8c9f3b63b5718382c034f993e9ea6c_hd.jpgv2-bf9c7c150eb1ce09f5bf45570c581960_hd.jpg

0x03 漏洞分析

漏洞分析部分安全客的大佬已经在几天前分析清楚了,我这边主要是跟一下流程,顺便膜拜一发。

漏洞触发位置:wls-wsat.war

漏洞触发URL:/wls-wsat/CoordinatorPortType(POST)

漏洞的本质:构造SOAP(XML)格式的请求,在解析的过程中导致XMLDecoder反序列化漏洞

反编译weblogic.jar包

由于该项目并不是开源项目,所以需要将weblogic.jar包,反编译后分析源码。这里我使用JD-GUI进行反编译。

分析漏洞调用链

weblogic.wsee.jaxws.workcontext.WorkContextServerTube.processRequest

weblogic.wsee.jaxws.workcontext.WorkContextTube.readHeaderOld

weblogic.wsee.workarea.WorkContextXmlInputAdapter

先看一下weblogic.wsee.jaxws.workcontext.WorkContextServerTube.processRequest方法

v2-6ea1f2d32c048981223131380697b332_hd.jpg

第43行,将localHeader1变量带入到readHeaderOld()方法中。localHeader1变量由第41行定义,其值为标签包裹的数据。

    

v2-59835737837a40380853f58e2cd7b9dc_hd.jpg

跟进readHeaderOld()方法(weblogic.wsee.jaxws.workcontext.WorkContextTube.readHeaderOld)

v2-e8c73806863d0e8ed3949695ed3aaf32_hd.jpg

在106行,有一句new
WorkContextXmlInputAdapter(new
ByteArrayInputStream(localByteArrayOutputStream.toByteArray())),创建了WorkContextXmlInputAdapter()对象(即对WorkContextXmlInputAdapter类进行了实例化),带入构造函数的参数即为传入的XML格式序列化数据。

跟进至WorkContextXmlInputAdapter类中(weblogic.wsee.workarea.WorkContextXmlInputAdapter )

v2-9e4abdb5f289cd4f463bd46b827ba804_hd.jpg

第19行,此处通过XMLDecoder反序列化,输入内容可控,故漏洞产生。

0x04 后记

关于影响版本、修复建议等更多详细内容可以在参考链接中获取,这里就不一一赘述了。

利用下午的时间和晓瑞师傅分析了下这个漏洞,从最初的环境搭建到复现分析,收获很多。

感谢xxlegend师傅、tomato师傅、Bearcat师傅、晓瑞师傅的帮助。

0x05 参考链接

【漏洞预警】Oracle WebLogic wls-wsat RCE CVE-2017-10271 & CVE-2017-3506

安全客 – 有思想的安全新媒体

Weblogic XMLDecoder RCE分析

Weblogic下载安装以及部署 – CSDN博客

Tom4t0/Tom4t0.github.io

Using XMLDecoder to execute server-side Java Code on an Restlet application (i.e. Remote Command Execution)

给TA买糖
共{{data.count}}人
人已赞赏
Web安全

【漏洞预警】Oracle WebLogic wls-wsat RCE CVE-2017-10271 & CVE-2017-3506

2017-12-23 5:27:14

Web安全

代码审计工具 Cobra 源码分析(一)

2017-12-27 11:59:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索