WebLogic两处任意文件上传漏洞动态分析(CVE-2018-2894)
字数 1318 2025-08-18 11:37:28
WebLogic 任意文件上传漏洞分析 (CVE-2018-2894)
漏洞概述
Oracle WebLogic Server 管理端存在两处未授权的任意文件上传漏洞,攻击者可通过这两个漏洞上传恶意文件获取服务器权限。漏洞影响版本包括:
- 10.3.6.0
- 12.1.3.0
- 12.2.1.2
- 12.2.1.3
漏洞危害评分高达9.8分,属于高危漏洞。
漏洞位置
存在漏洞的两个页面:
/ws_utc/begin.do/ws_utc/config.do
漏洞原理
工作目录配置机制
WebLogic 允许通过/ws_utc/config.do页面修改默认工作目录(WSTestPageWorkDir)。当设置新目录时,系统会将原目录下的子目录和文件转移到新目录,但旧目录仍保留。
攻击流程
- 攻击者首先需要配置工作目录,因为默认目录在URL访问时不可达
- 攻击者选择通过
config.do或begin.do上传恶意文件 - 上传成功后,WebLogic会在服务端进行一系列目录操作
- 最终上传的恶意文件会被保存在特定位置
begin.do 上传漏洞分析
攻击路径
实际存在上传漏洞的地址:
http://IP:7001/ws_utc/resources/ws/config/import?timestamp=1532403983779
关键表单字段
import_file_name - 该字段值用于构造最终保存的文件名
服务端处理流程
- 检查工作目录下是否存在
upload目录,不存在则创建 - 调用
cleanObsoleteFile方法遍历并删除目录中所有文件 - 创建以
Rs_Upload_开头加格式化时间命名的目录 - 获取上传表单的
form-data,保存到kvMap集合 - 通过
saveAttacheFile方法将附件保存到磁盘
异常处理
当上传非WebLogic可处理的文件格式时,程序会在context.createUnmarshaller处抛出空指针异常,导致响应状态码为500。
config.do 上传漏洞分析
攻击路径
- 访问
/ws_utc/config.do页面 - 点击"安全"菜单,添加Keystore
- 触发地址:
http://IP/ws_utc/resources/setting/keystore?timestamp=1532400069848
关键表单字段
ks_filename - 该字段值用于构造最终保存的文件名
文件保存位置
上传的文件保存在工作台配置目录下的/config/keystore/目录中,文件名格式为timestamp参数值加下划线拼接。
防御措施
-
访问控制:
- 设置
Config.do、begin.do页面需要登录授权后才能访问
- 设置
-
入侵检测:
- IPS等防御产品可加入以下检测特征:
- 表单字段
import_file_name - 表单字段
ks_filename - 响应状态码500
- 表单字段
- IPS等防御产品可加入以下检测特征:
-
系统升级:
- 升级到官方最新版本
参考链接
注:本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。