android路径穿越漏洞,Spring MVC 目录穿越漏洞(CVE-2018-1271)分析

本文详细分析了Spring MVC框架的CVE-2018-1271目录穿越漏洞,该漏洞影响Spring Framework特定版本。文章介绍了漏洞复现、影响、利用条件,并通过代码调试展示了漏洞触发的过程。此外,还提到了在Windows系统上,通过构造特殊URL可读取任意文件,如win.ini。最后,文章讨论了补丁原理和修复建议。
摘要由CSDN通过智能技术生成

作者: Badcode@知道创宇404实验室

漏洞简介

2018年04月05日,Pivotal公布了Spring MVC存在一个目录穿越漏洞(CVE-2018-1271)。Spring Framework版本5.0到5.0.4,4.3到4.3.14以及较旧的不受支持的版本允许应用程序配置Spring MVC以提供静态资源(例如CSS,JS,图像)。当Spring MVC的静态资源存放在Windows系统上时,攻击可以通过构造特殊URL导致目录遍历漏洞。

漏洞影响

Spring Framework 5.0 to 5.0.4.

Spring Framework 4.3 to 4.3.14

已不支持的旧版本仍然受影响

漏洞利用条件

Server运行于Windows系统上

要使用file协议打开资源文件目录

漏洞复现

复现环境

操作系统Windows

中间件jetty

环境搭建

1.下载 spring-mvc-showcase

git clone https://github.com/spring-projects/spring-mvc-showcase.git

修改pom.xml,使用Spring Framework 5.0.0。

5fd9b8d90c9327693ddaa424c7e3cf44.png

2.修改 Spring MVC 静态资源配置,可参考官方文档

通过官方文档可知有两种方式配置,可自行选择配置。此处通过重写WebMvcConfigurer中的addResourceHandlers方法来添加新的资源文件路径。在org.springframework.samples.mvc.config.WebMvcConfig添加以下代码即可,使用file://协议指定resources为静态文件目录。

registry.addResourceHandler("/resources/**").addResourceLocations("file:./src/main/resources/","/resources/");

3.使用 jetty 启动项目

mvn jetty:run

至此复现环境搭建完毕。

复现过程及结果

访问以下链接

http://localhost:8080/spring-mvc-showcase/resources/%255c%255c..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/..%255c/windows/win.ini

f5bbf023cb9765d4f300b05597db239d.png

可以看到成功读取到win.ini的内容了。

漏洞分析

当外部要访问静态资源时,会调用org.springframework.web.servlet.resource.ResourceHttpRequestHandler:handleRequest来处理,在这里下断点调试。

051ae286b9b6f76c69659595b04284d2.png

跟进org.springframework.web.servlet.resource.ResourceHttpRequestHandler:getResource()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值