漏洞介绍
2022年5月18日,VMware发布安全公告,修复了两个存在于VMware Workspace ONE Access (Access)、VMware Identity Manager (vIDM)、VMware vRealize Automation (vRA)、VMware Cloud Foundation、vRealize Suite Lifecycle Manager中的漏洞。
该漏洞存在于VMware Workspace ONE Access、Identity Manager 和 vRealize Automation中,对 UI 具有网络访问权限的恶意攻击者可能无需进行身份验证即可获得管理访问权限。
漏洞等级:严重(9.8)
影响版本
VMware Cloud Foundation 4.3.x、3.x、4.2.x、4.1、4.0.x
VMware Workspace One Access 21.08.0.1、21.08.0.0、20.10.0.1、20.10.0.0
VMware Identity Manager 3.3.6、3.3.5、3.3.4、3.3.3
VMware vRealize Automation 7.6
vRealize Suite Lifecycle Manager 8.x
环境搭建
参考https://mp.weixin.qq.com/s/g5YipzZf7hk6BTmtQAnfIw
漏洞分析及复现
在webapps\SAAS\WEB-INF\lib\spring-webmvc-5.2.9.RELEASE.jar!\org\springframework\web\servlet\DispatcherServlet.class#doDispatch添加断点,
发送登录请求:
可以发现程序会触发两次断点,第一次:
第二次触发断点:
发现程序会向https://test1.com/SAAS/API/1.0/REST/auth/local/login发送请求,在这个请求中处理登录操作。
auth/local/login接口对应的处理类不能断点,去官方发布的补丁中查看怎么修复的,
补丁中重点有两处,更新了web.xml文件和新增了HostHeaderFilter.class过滤器,web.xml的变化也是添加了HostHeaderFilter的过滤,查看HostHeaderFilter类的作用:
主要是判断请求中的Host请求头的内容,对localhost/127.0.0.1等进行过滤。修改登录请求中的Host值,如下:
DispatcherServlet断点处只触发了一次。
查看服务器日志(/opt/vmware/horizon/workspace/logs/horizon.log):
发现程序向123123:443发送了请求,因为123123不符合ip格式,所以报错,在错误栈中找到com.vmware.horizon.adapters.local.LocalPasswordService#authenticate,打断点
重新发送请求
这段代码就是向https://123123:443/SAAS/API/1.0/REST/auth/local/login发送认证请求,代码中只根据响应码来判断认证是否成功,所以找一个无论请求什么都返回200的网站,如oast.online(需要是合法证书的,不然还会报错),重新构造请求,
成功获取到认证成功的Cookie信息。
漏洞缓解
官方已经发布了漏洞补丁,详情参考
https://www.vmware.com/security/advisories/VMSA-2022-0014.html