VMware vRealize Log HTTP服务两个漏洞分析

admin 2024年11月27日16:44:43评论8 views字数 4991阅读16分38秒阅读模式
VMware vRealize Log HTTP服务两个漏洞分析
VLab-实验室
VMware vRealize Log HTTP服务两个漏洞分析
今年年初vmware官方修复了该产品Thrift服务中的一个未授权rce漏洞,CVE编号CVE-2022-31704,通过对比补丁发现在http服务中也修复了两个漏洞,一个路径穿越漏洞和一个bypass csrf token漏洞。

漏洞分析

首先分析路径穿越漏洞:

VMware vRealize Log HTTP服务两个漏洞分析

可以看到这里接收到iconUrl参数后,调用了ContentPackUtil.getIconFileData方法处理。

VMware vRealize Log HTTP服务两个漏洞分析

这里没有做任何过滤就有读文件操作,读了文件之后做了一次base64编码。接下来发送http请求测试一下。

VMware vRealize Log HTTP服务两个漏洞分析

http响应包的icon数据base64解码后:

VMware vRealize Log HTTP服务两个漏洞分析

可以看到这里成功复现了路径穿越漏洞。

列一下调用栈:

getIconFileData:401, ContentPackUtil (com.vmware.loginsight.commons.contentpack)exportContentPackFromJson:445, ContentPackActionBean (com.vmware.loginsight.web.actions.misc)invoke0:-1, NativeMethodAccessorImpl (sun.reflect)invoke:62, NativeMethodAccessorImpl (sun.reflect)invoke:43, DelegatingMethodAccessorImpl (sun.reflect)invoke:498, Method (java.lang.reflect)intercept:456, DispatcherHelper$6 (net.sourceforge.stripes.controller)proceed:158, ExecutionContext (net.sourceforge.stripes.controller)interceptEventHandling:188, SecurityInterceptor (org.stripesstuff.plugin.security)intercept:120, SecurityInterceptor (org.stripesstuff.plugin.security)proceed:155, ExecutionContext (net.sourceforge.stripes.controller)intercept:113, BeforeAfterMethodInterceptor (net.sourceforge.stripes.controller)proceed:155, ExecutionContext (net.sourceforge.stripes.controller)wrap:74, ExecutionContext (net.sourceforge.stripes.controller)invokeEventHandler:454, DispatcherHelper (net.sourceforge.stripes.controller)invokeEventHandler:278, DispatcherServlet (net.sourceforge.stripes.controller)service:160, DispatcherServlet (net.sourceforge.stripes.controller)service:764, HttpServlet (javax.servlet.http)doFilter:453, DynamicMappingFilter$2 (net.sourceforge.stripes.controller)doFilter:260, StripesFilter (net.sourceforge.stripes.controller)doFilter:440, DynamicMappingFilter (net.sourceforge.stripes.controller)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)doFilter:125, ResponseOverrideFilter (org.displaytag.filter)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)doFilter:180, RestCsrfPreventionFilter (com.vmware.loginsight.web.stripesext)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)doFilter:126, HttpHeaderSecurityFilter (org.apache.catalina.filters)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)doFilter:40, CSPFilter (com.vmware.loginsight.web.stripesext)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)doFilter:24, UTF8EncodingFilter (com.vmware.loginsight.web.utilities)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)doFilter:29, ReferrerPolicyFilter (com.vmware.loginsight.web.utilities)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)doFilter:30, CacheControlFilter (com.vmware.loginsight.web.utilities)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)doFilter:31, UrlRewriteFilter (com.vmware.loginsight.web.stripesext)internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)doFilter:166, ApplicationFilterChain (org.apache.catalina.core)invoke:196, StandardWrapperValve (org.apache.catalina.core)invoke:97, StandardContextValve (org.apache.catalina.core)invoke:661, AuthenticatorBase (org.apache.catalina.authenticator)invoke:661, AuthenticatorBase (org.apache.catalina.authenticator)invoke:135, StandardHostValve (org.apache.catalina.core)invoke:81, ErrorReportValve (org.apache.catalina.valves)invoke:81, ErrorReportValve (org.apache.catalina.valves)invoke:698, AbstractAccessLogValve (org.apache.catalina.valves)invoke:261, SingleSignOn (org.apache.catalina.authenticator)invoke:769, RemoteIpValve (org.apache.catalina.valves)invoke:78, StandardEngineValve (org.apache.catalina.core)service:366, CoyoteAdapter (org.apache.catalina.connector)service:639, Http11Processor (org.apache.coyote.http11)process:65, AbstractProcessorLight (org.apache.coyote)process:847, AbstractProtocol$ConnectionHandler (org.apache.coyote)run:2168, AprEndpoint$SocketWithOptionsProcessor (org.apache.tomcat.util.net)runWorker:1191, ThreadPoolExecutor (org.apache.tomcat.util.threads)run:659, ThreadPoolExecutor$Worker (org.apache.tomcat.util.threads)run:61, TaskThread$WrappingRunnable (org.apache.tomcat.util.threads)run:748, Thread (java.lang)

再来分析一下bypass csrf token漏洞。

在上面的http request请求数据包中可以发现http header头中存在X-Csrf-Token字段,如果去掉该字段http响应包会返回403拒绝访问。

VMware vRealize Log HTTP服务两个漏洞分析

查看校验X-Csrf-Token字段代码。

VMware vRealize Log HTTP服务两个漏洞分析

可以看到代码里使用正则表达式去判断URI字符,这里构造特殊的URI尝试绕过这个校验。

VMware vRealize Log HTTP服务两个漏洞分析

这里发送的http请求数据包没有X-Csrf-Token字段,http响应包也返回了200。该服务权限校验还判断了session数据所以无法绕过权限,只能绕过X-Csrf-Token字段。

修复建议

请参考vmware官网修复文档

https://www.vmware.com/security/advisories/VMSA-2023-0001.html

VMware vRealize Log HTTP服务两个漏洞分析

往期回顾

VMware vRealize Log HTTP服务两个漏洞分析

通过机器学习和反编译来检测恶意样本代码重用

二进制代码相似性检测也能对抗?

Linux系统下安全控制策略SELinux解

VMware vRealize Log HTTP服务两个漏洞分析
引领智能网络攻防科技
VMware vRealize Log HTTP服务两个漏洞分析
点击在看
分享给小伙伴
↓↓点击阅读原文,了解更多墨云信息

原文始发于微信公众号(VLab安全实验室):VMware vRealize Log HTTP服务两个漏洞分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月27日16:44:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   VMware vRealize Log HTTP服务两个漏洞分析http://cn-sec.com/archives/1643509.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息