CVE-2021-21975&CVE-2021-21983 VMware vRealize SSRF、任意文件上传漏洞分析
字数 1570 2025-08-05 12:50:18
VMware vRealize SSRF与任意文件上传漏洞分析 (CVE-2021-21975 & CVE-2021-21983)
漏洞概述
本文档详细分析VMware vRealize Operations Manager中的两个高危漏洞:
- CVE-2021-21975 - 服务器端请求伪造(SSRF)漏洞
- CVE-2021-21983 - 任意文件上传漏洞
这两个漏洞可以组合利用,最终实现远程代码执行(RCE)。
CVE-2021-21975 (SSRF漏洞)
漏洞位置
位于casa/WEB-INF/classes/com/vmware/ops/casa/api/ClusterDefinitionController.class中的/nodes/thumbprints路由
漏洞分析
- 该路由接收POST请求,将传入的值作为
address参数 - 调用
ClusterDefinitionService#getNodesThumbprints方法 - 方法中实例化
HttpMapFunction类并调用其execute方法 execute方法处理流程:- 将传入的
address转为数组形式 - 遍历数组,为每个地址创建
HttpTask实例 - 使用
HttpGetTask发送GET请求 - 通过
invokeAll多线程执行所有请求
- 将传入的
漏洞复现
- 向
/nodes/thumbprints发送POST请求 - 在请求体中包含目标内部地址
- 服务器会向该地址发起请求,返回响应内容
CVE-2021-21983 (任意文件上传漏洞)
漏洞位置
位于casa/classes/com/vmware/vcops/casa/appconfig/CertificateController.class
漏洞分析
- 该控制器接收两个POST参数:
name- 文件名file- 文件内容
- 调用
CertificateService#handleCertificateFile方法 - 方法中直接创建
File对象并使用transferTo上传文件 - 由于两个参数完全可控且无任何过滤,导致任意文件上传
漏洞复现前提
需要有有效的Authorization头信息(8.3之前的版本会通过SSRF泄露此信息)
漏洞复现步骤
- 构造包含恶意文件内容的POST请求
- 设置
name参数为目标路径(如webshell路径) - 提供有效的
Authorization头 - 服务器会将文件写入指定位置
组合利用实现RCE
利用思路
- 首先利用SSRF漏洞获取
Authorization头信息(8.3以下版本) - 然后使用获取的认证信息配合文件上传漏洞写入webshell
- 最后访问上传的webshell实现远程代码执行
具体步骤
- 发送SSRF请求获取认证信息
- 使用获取的认证构造文件上传请求
- 上传包含恶意代码的文件(如JSP webshell)到可访问目录
- 通过浏览器或其他工具访问上传的webshell
- 执行任意系统命令
影响版本
- VMware vRealize Operations Manager 8.1.x
- VMware vRealize Operations Manager 8.0.x
- 可能影响其他相关版本
防护建议
- 及时升级到最新版本
- 限制网络访问,仅允许可信IP访问管理接口
- 实施严格的输入验证和输出编码
- 对文件上传功能实施严格的白名单验证
- 使用Web应用防火墙(WAF)规则阻止可疑请求