CVE-2022-22954 漏洞复现及简单分析

admin 2022年5月17日11:36:53评论505 views字数 1694阅读5分38秒阅读模式


0x00 漏洞概述

VMware Workspace ONE Access(以前称为VMware Identity Manager)旨在通过多因素身份验证、条件访问和单点登录,让您的员工更快地访问SaaS、Web和本机移动应用程序。

近日VMware官网发布了VMware Workspace ONE Access存在多个漏洞:CVE-2022-22954、CVE-2022-22955、CVE-2022-22956、CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-22960。受影响版本如下

  • VMware Workspace ONE Access Appliance (版本号:20.10.0.0 ,20.10.0.1 ,21.08.0.0 ,21.08.0.1 )

  • VMware Identity Manager Appliance (版本号:3.3.3 , 3.3.4 , 3.3.5 ,3.3.6)

  • VMware Realize Automation (版本号:7.6)

CVE-2022-22954 漏洞复现及简单分析


其中的CVE-2022-22954是一个匿名服务器模板注入漏洞,未经身份验证的攻击者可以利用此漏洞进行远程任意代码执行。

0x01 环境复现

1. VMware Workspace ONE Access下载链接

百度网盘 链接:https://pan.baidu.com/s/1Y204Z0tk_ZKH3UInPFMrfA 提取码:7v1q --来自百度网盘超级会员V6的分享

2. 上述下载链接需要首先完成注册,按照要求填写即可。
3. 使用教程

CVE-2022-22954 漏洞复现及简单分析


CVE-2022-22954 漏洞复现及简单分析


CVE-2022-22954 漏洞复现及简单分析


CVE-2022-22954 漏洞复现及简单分析

CVE-2022-22954 漏洞复现及简单分析

(7)配置完成

CVE-2022-22954 漏洞复现及简单分析


CVE-2022-22954 漏洞复现及简单分析


4. 验证漏洞
漏洞验证脚本地址https://github.com/bewhale/CVE-2022-22954

CVE-2022-22954 漏洞复现及简单分析

0x02 漏洞分析

  1. 从官方发布的 HW-154129-applyWorkaround.py 定位问题点



    CVE-2022-22954 漏洞复现及简单分析


CVE-2022-22954 漏洞复现及简单分析



2.发现删除了templates中的customError.ftl模板。


定位templates/customError.ftl模板,发现在

templates/customError.ftl:61这个地方存在模板注入


CVE-2022-22954 漏洞复现及简单分析


freemarker官网文档中给出了安全问题的提示

https://freemarker.apache.org/docs/ref_builtins_expert.html#ref_builtin_eval


CVE-2022-22954 漏洞复现及简单分析

此处应为freemarker ssti的位置。


3.寻找渲染此模板的路由

CVE-2022-22954 漏洞复现及简单分析

4.查看方法调用情况

CVE-2022-22954 漏洞复现及简单分析

从上图可以发现有两条链触发customer,实现RCE

sendError/sendUnhandledError -> getErrorPage ->

handleGenericError

sendError/sendUnhandledError -> getErrorPage ->

handleUnauthorizedError -> handleGenericError  

但是直接访问这两个requestMapping,我们无法控制

javax.servlet.error.message,也就无法控制errorObj,所以找一找哪个控制器跳转过来的。在

com.vmware.endusercatalog.ui.web.UiApplicationExceptionResolver类中,通过@ExceptionHandler注解表明这是一个异常处理类。


CVE-2022-22954 漏洞复现及简单分析


当程序直接抛出Exception类型的异常时会进入handleAnyGenericException,最终都会返回/ui/view/error,并且设置了errorObj所需要的Attribute errorJson来自于LocalizationParamValueException异常的getArgs。


CVE-2022-22954 漏洞复现及简单分析


如果我们可以控制抛出异常的参数,就可以把freemarker的payload传入errorObj。

文章参考:


原文始发于微信公众号(无级安全):CVE-2022-22954 漏洞复现及简单分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月17日11:36:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2022-22954 漏洞复现及简单分析http://cn-sec.com/archives/1014132.html

发表评论

匿名网友 填写信息