操作:
根据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),从而获取系统敏感信息。