【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式

渗透技巧 2年前 (2022) admin
761 0 0
引言


前面已经给大家分享了VMware Workspace ONE Accessfreemarker SSTI漏洞CVE-2022-22954的漏洞原理:


CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞

QCyber,公众号:且听安全【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


今天看到EXP已经公开(所有公开的触发URL来源都是一样的【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式)。通过分析,可以构造5种不同URL来触发RCE,下面给小伙伴们分享一下自己寻找漏洞触发点的过程。

触发接口梳理


从前面的分析可知,需要通过全局异常处理函数`UiApplicationExceptionResolver#handleAnyGenericException`触发freemarker模板渲染,限定的Controller如下:


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


  • UIController

  • HubUIController

  • WorkspaceOauth2CodeVerificationController


顺着这个思路,我们可以将全部接口进行梳理:


0x01 UIController


GET /uiGET /ui/resourcepaths


0x02 HubUIController


GET /hub-uiGET /hub-ui/resourcepathsGET /hub-ui/byob


0x03 WorkspaceOauth2CodeVerificationController


GET /ui/oauth/verify?code=...GET /ui/oauth/verify?error=...


同时查看`WebConfig`,里面定义了一些拦截器:


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


每个拦截器定义了适用的URL,主要包括`UI_URLS`和`AUTHENTICATED_URLS`:


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


与前面的接口列表进行对应,就可以找到完整的代码审计流程。最终拦截器`AuthContextPopulationInterceptor`引起了我的注意:


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


拦截器适用于`UI_URLS`(`”/ui”, “/hub-ui”, “/hub-ui/byob”, “/logout”, “/ui/oauth/verify”`),`preHandle`函数定义如下:


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


通过构造特殊的GET参数(`deviceUdid`或者`deviceType`),使得在实例化`AuthContext`对象的过程中抛出异常`InvalidAuthContextException`:


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


从而进入全局异常处理函数`handleAnyGenericException`进行处理:


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


最终将GET参数字符串传入了`errorObj`变量并触发模板渲染,从而导致SSTI漏洞。


对照前面对接口的梳理,符合触发条件的接口如下:


GET /catalog-portal/ui?code=&deviceUdid=&deviceType= (deviceType或者deviceUdid)GET /catalog-portal/hub-ui?deviceType=&deviceUdid= (deviceType或者deviceUdid)GET /catalog-portal/hub-ui/byob?deviceType=&deviceUdid= (deviceType或者deviceUdid)GET /catalog-portal/ui/oauth/verify?error=&deviceType=&deviceUdid= (deviceType或者deviceUdid)GET /catalog-portal/ui/oauth/verify?code=&deviceType=&deviceUdid= (deviceType或者deviceUdid)

漏洞复现


以`/hub-ui`为例:


【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式


小结


CVE-2022-22954漏洞本质是一个freemarker模板渲染漏洞,通过上面分析,需要通过抛出全局性异常来触发漏洞,深入分析ControllerAdvice全局接口定义、Controller URL定义和拦截器定义之后,本文最终梳理出了5个可触发漏洞方式。



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。



【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式

原文始发于微信公众号(且听安全):【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式

版权声明:admin 发表于 2022年4月12日 下午1:30。
转载请注明:【VMware系列】复盘VMware Workspace ONE Access freemarker SSTI漏洞触发的5种方式 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...