CVE-2018-2894漏洞分析
字数 1599 2025-08-18 11:38:41
CVE-2018-2894 WebLogic远程文件上传漏洞分析与利用
漏洞概述
CVE-2018-2894是Oracle WebLogic Server中存在的一个高危远程文件上传漏洞,允许攻击者在未授权的情况下上传恶意文件到服务器,从而获取系统控制权限。该漏洞在CVSS评分系统中获得了9.8分的高分,属于严重级别漏洞。
受影响版本
- Oracle WebLogic Server 10.3.6.0
- Oracle WebLogic Server 12.1.3.0
- Oracle WebLogic Server 12.2.1.2
- Oracle WebLogic Server 12.2.1.3
漏洞原理
该漏洞存在于WebLogic的Web Services Test Client组件中,具体路径为/ws_utc/config.do。攻击者可以利用该接口修改服务器的工作目录,然后通过文件上传功能将恶意文件(如JSP Webshell)上传到服务器上的任意可访问目录。
关键问题点:
config.do接口在开发模式下无需认证即可访问- 工作目录修改功能未做任何限制
- 文件上传功能未对文件类型和内容进行有效过滤
漏洞复现步骤
环境搭建
- 安装受影响版本的WebLogic服务器(10.3.6.0,12.1.3.0,12.2.1.2或12.2.1.3)
- 启动WebLogic服务
漏洞利用过程
-
访问配置页面:
访问http://[target]:7001/ws_utc/config.do(开发模式下无需认证) -
修改工作目录:
将"Work Home Dir"修改为WebLogic服务器的web应用目录,例如:C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\com.oracle.webservices.wls.ws-testclient-app-wls_12.1.3\cmprq0\war -
上传恶意文件:
- 选择左侧菜单栏中的"安全"选项
- 点击"添加Keystore"设置
- 输入任意Keystore名称
- 通过文件上传按钮上传恶意JSP文件(文件名可以为空格)
-
获取上传路径:
通过抓包可获取上传请求路径:http://[target]:7001/ws_utc/resources/setting/keystore?timestamp=[timestamp]上传后的文件命名格式为:
[timestamp]_[filename] -
访问上传的文件:
上传成功后,可通过构造的URL访问上传的Webshell文件
技术分析
-
目录修改功能:
- 修改工作目录的函数未做任何限制,允许指向任意路径
- 通过
getKeyStorePath()获取写入路径
-
文件上传机制:
- 上传文件被存储到指定的
storePath目录 - 文件名由
fileNamePrefix + "_" + attachName组成 - 使用POST请求中URL地址上携带的
timestamp参数值作为文件名前缀 - 未对文件内容和类型进行有效过滤
- 上传文件被存储到指定的
触发条件
- 需要知道目标服务器上部署应用的web目录路径
- 在开发模式下,
ws_utc/config.do接口无需认证即可访问 - 在生产模式下,需要有效的认证凭据才能访问该接口
修复建议
-
官方补丁:
- 升级到Oracle官方发布的最新版本
- 应用关键补丁更新CPU(Critical Patch Update)
-
临时缓解措施:
- 设置
Config.do和begin.do页面需要登录授权后才能访问 - 删除或禁用Web Services Test Client组件
- 在网络边界部署IPS等防御设备,加入相应的特征检测规则
- 设置
-
安全配置:
- 将WebLogic服务器从开发模式切换到生产模式
- 限制对管理接口的访问权限
参考链接
-
Oracle官方安全公告:
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html -
TideSec团队分析报告:
https://mp.weixin.qq.com/s/y5JGmM-aNaHcs_6P9a-gRQ -
Tide安全团队官网:
http://www.TideSec.net