浅析CVE-2025-68645Zimbra属性覆盖导致本地文件包含漏洞"

admin 2026-10-24 09:04:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

浅析 CVE-2025-68645 Zimbra 属性覆盖导致本地文件包含漏洞

原创

KCyber
KCyber

自在安全

2026年1月3日 10:04
上海

在小说阅读器读本章

去阅读

近日 Zimbra 披露了一个本地文件包含漏洞 CVE-2025-68645 ,从公开信息看应该与前期朋友分享给我的一个漏洞撞了,下面就将简要分析过程分享给大家。该漏洞源于 RestFilter 过滤器对参数处理不当,导致未经身份认证的用户可以构造恶意请求,读取服务器 WebRoot 目录下的敏感文件。

RestFilter

Zimbra 使用Jetty作为底层Web容器。在Zimbra和ZimbraAdmin这两个应用的web.xml中均可以找到RestFilter配置,该Filter匹配/h/* 请求:

查看 com.zimbra.webClient.filters.RestFilter 实现代码,存在非常明显的 request 属性覆盖过程,即请求参数的值将会被复制给同名的属性:

那么此处的属性覆盖是否可以利用呢?

JspServlet

继续查看 web.xml ,发现多个 /h/* 请求被定义在 jsp-config 中,对应处理的 Servlet 类为 org.apache.jasper.servlet.JspServlet :

<jsp-config>
    <jsp-property-group>
      <url-pattern>/h/changepass</url-pattern>
      <url-pattern>/h/imessage</url-pattern>
      <url-pattern>/h/postLoginRedirect</url-pattern>
      <url-pattern>/h/printcalls</url-pattern>
      <url-pattern>/h/printcalendar</url-pattern>
      <url-pattern>/h/printvoicemails</url-pattern>
      <url-pattern>/h/printappointments</url-pattern>
      <url-pattern>/h/rest</url-pattern>
      <url-pattern>/h/printcontacts</url-pattern>
      <url-pattern>/h/printconversations</url-pattern>
      <url-pattern>/h/printmessage</url-pattern>
      <url-pattern>/h/printtasks</url-pattern>
      <url-pattern>/h/viewimages</url-pattern>
      <url-pattern>/modern/</url-pattern>
    </jsp-property-group>
  </jsp-config>

在 JspServlet 中,当从 request 中提取 javax.servlet.include.servlet_path 属性非空时,url 将被赋值为该属性的值:

很容易想到 RestFilter 和 JspServlet 组合起来存在被利用的可能性。

组合实现文件包含

我们知道 Jetty 正常情况下无法直接访问类似 /WEB-INF/web.xml 的文件资源,原因是 Jetty 在 Handler 层会对 /WEB-INF 和 /META-INF 的访问进行拦截,处理代码位于 org.eclipse.jetty.server.handler.ContextHandler.doHandle ,该函数将调用 isProtectedTarget 判断请求是否属于被保护对象:

public void doHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    DispatcherType dispatch = baseRequest.getDispatcherType();
    boolean new_context = baseRequest.takeNewContext();

    try {
        if (new_context) {
            this.requestInitialized(baseRequest, request);
        }

        if (dispatch != DispatcherType.REQUEST || !this.isProtectedTarget(target)) {
            this.nextHandle(target, baseRequest, request, response);
            return;
        }

        baseRequest.setHandled(true);
        response.sendError(404);
    } finally {
        if (new_context) {
            this.requestDestroyed(baseRequest, request);
        }

    }

}

回顾 RestFilter 和 JspServlet 的处理逻辑可知,如果将两者结合起来就可以绕过上述检查机制,从而实现对 /WEB-INF 等限制目录的访问:

前面已经提到,Zimbra 和 ZimbraAdmin 都配置了 RestFilter ,因此这两个接口均可以实现 WebRoot 目录下的文件包含。读取 /WEB-INF/web.xml 过程如下:

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


2026了,打red的时候遇到K8S还不知道咋横向吗(下)" 网络安全文章

2026了,打red的时候遇到K8S还不知道咋横向吗(下)"

本文详细介绍了Kubernetes红队渗透中的横向移动技术,重点分析了容器逃逸、高权限Token获取和污点横移三大核心攻击路径。通过特权模式挂载宿主机根文件系统、利用ServiceAccount令牌提升至集群管理员权限,并借助污点容忍机制在主节点部署恶意Pod实现逃逸。文档还推荐了CDK容器渗透工具进行自动化信息收集和漏洞利用,提供了具体操作命令和防御规避方案。
【攻防实战5】记一次某技师学院的实战记录" 网络安全文章

【攻防实战5】记一次某技师学院的实战记录"

本文记录了一次针对某技师学院网络系统的攻防实战过程。攻击方通过信息收集发现教师资源库站点,利用注册功能创建账号后,在个人信息上传头像处发现并利用任意文件上传漏洞,成功上传Webshell并使用冰蝎4.1连接。然而,在准备进行内网横向移动时,目标站点下线导致攻击中断,未能取得进一步内网权限。文章最后强调了研究仅用于网络安全技术目的并附免责声明。
网贷里的“隐形”扣费,你发现了吗?这几种费用可以追回!" 网络安全文章

网贷里的“隐形”扣费,你发现了吗?这几种费用可以追回!"

该文档揭露网贷平台通过担保费、服务费等隐形收费变相提高借贷成本的问题,指出这些费用可能构成不合法的'砍头息'并导致实际年化利率超过司法保护上限(14.8%)。文章提供具体维权方案:通过IRR计算器自查利率、收集合同与还款记录等证据,分三步采取平台沟通、监管投诉及法律途径追回费用,同时警示避免代理退费骗局并强调维权时效性。
评论:0   参与:  0