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)上传到服务器上的任意可访问目录。

关键问题点:

  1. config.do接口在开发模式下无需认证即可访问
  2. 工作目录修改功能未做任何限制
  3. 文件上传功能未对文件类型和内容进行有效过滤

漏洞复现步骤

环境搭建

  1. 安装受影响版本的WebLogic服务器(10.3.6.0,12.1.3.0,12.2.1.2或12.2.1.3)
  2. 启动WebLogic服务

漏洞利用过程

  1. 访问配置页面
    访问http://[target]:7001/ws_utc/config.do(开发模式下无需认证)

  2. 修改工作目录
    将"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
    
  3. 上传恶意文件

    • 选择左侧菜单栏中的"安全"选项
    • 点击"添加Keystore"设置
    • 输入任意Keystore名称
    • 通过文件上传按钮上传恶意JSP文件(文件名可以为空格)
  4. 获取上传路径
    通过抓包可获取上传请求路径:

    http://[target]:7001/ws_utc/resources/setting/keystore?timestamp=[timestamp]
    

    上传后的文件命名格式为:[timestamp]_[filename]

  5. 访问上传的文件
    上传成功后,可通过构造的URL访问上传的Webshell文件

技术分析

  1. 目录修改功能

    • 修改工作目录的函数未做任何限制,允许指向任意路径
    • 通过getKeyStorePath()获取写入路径
  2. 文件上传机制

    • 上传文件被存储到指定的storePath目录
    • 文件名由fileNamePrefix + "_" + attachName组成
    • 使用POST请求中URL地址上携带的timestamp参数值作为文件名前缀
    • 未对文件内容和类型进行有效过滤

触发条件

  1. 需要知道目标服务器上部署应用的web目录路径
  2. 在开发模式下,ws_utc/config.do接口无需认证即可访问
  3. 在生产模式下,需要有效的认证凭据才能访问该接口

修复建议

  1. 官方补丁

    • 升级到Oracle官方发布的最新版本
    • 应用关键补丁更新CPU(Critical Patch Update)
  2. 临时缓解措施

    • 设置Config.dobegin.do页面需要登录授权后才能访问
    • 删除或禁用Web Services Test Client组件
    • 在网络边界部署IPS等防御设备,加入相应的特征检测规则
  3. 安全配置

    • 将WebLogic服务器从开发模式切换到生产模式
    • 限制对管理接口的访问权限

参考链接

  1. Oracle官方安全公告:
    http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html

  2. TideSec团队分析报告:
    https://mp.weixin.qq.com/s/y5JGmM-aNaHcs_6P9a-gRQ

  3. Tide安全团队官网:
    http://www.TideSec.net

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应用目录,例如: 上传恶意文件 : 选择左侧菜单栏中的"安全"选项 点击"添加Keystore"设置 输入任意Keystore名称 通过文件上传按钮上传恶意JSP文件(文件名可以为空格) 获取上传路径 : 通过抓包可获取上传请求路径: 上传后的文件命名格式为: [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