WebLogic任意文件上传漏洞 CVE-2018-2894 分析

0x00 概述

Oracle官方发布了7月份的关键补丁更新CPU(Critical Patch Update),其中包含一个高危的Weblogic未授权任意文件上传漏洞(CVE-2018-2894)

0x01 影响范围

Oracle WebLogic Server,版本10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3。
该漏洞的影响模块为web服务测试页,在默认情况下不启用。
受影响的页面为/ws_utc/config.do和/ws_utc/begin.do

0x02 启用Web 服务测试页

通过测试在10.3.6版本上未发现该功能。
登录控制台-》配置-》高级-》勾选启用Web服务测试页 -》保存

0x03 漏洞复现

上传点一,打开下面的URL,点击右上角的齿轮,
通过导入测试用例进行上传,前端提示出错,文件已经上传成功
http://ip:7001/ws_utc/

上传点二,打开下面的URL。点击左边的安全,添加
通过上传JKS Keystores文件来上传恶意文件
http://ip:7001/ws_utc/config.do

更改当前的工作目录进行利用
由于上传目录不在Web目录无法执行恶意代码,通过切换工作目录切换到相关web目录下即可,
访问http://ip:7001/ws_utc/config.do
将原来的

修改成

重新上传文件

0x04 漏洞成因分析

在ws-testpage-impl.jar/com.oracle.webservices.testclient.ws.res.WebserviceResource 类中存在importWsTestConfig方法

跟进 RSdataHelper的convertFormDataMultiPart方法
接下来调用convertFormDataMultiPart方法,文件直接由字段 文件名拼接而成,没有任何限制。

ws-testpage-impl.jar!/com/oracle/webservices/testclient/ws/util/RSDataHelper.class:164

0x05 绕过生产模式进行利用(需要登录)

在前面import方法中如果运行在生产模式将报错。
能不能上传成功关键在convertFormDataMultiPart方法,发现下面的invokeWebServiceByMultiPart没有检查生产模式
另外通过../跨目录,可以不用切换工作目录。

From:https://blog.riskivy.com/weblogic-cve-2018-2894/

参与评论