Spring Framework 反射型文件下载漏洞CVE-2020-5398

admin 2022年5月11日10:52:34评论244 views字数 1445阅读4分49秒阅读模式

Spring是一个Java/Java EE/.NET的分层应用程序框架。Spring Framework 存在反射型文件下载漏洞此漏洞由于Spring Framework并没有对filename传入的文件名进行严格的安全检测,攻击者可以通过截断的方式控制filename变量值,下载任意格式的文件。





漏洞名称:Spring Framework 反射型文件下载漏洞CVE-2020-5398

威胁等级:高危

影响范围

Spring Framework 5.2.0 - 5.2.2

Spring Framework 5.1.0 - 5.1.12

Spring Framework 5.0.0 - 5.0.15

漏洞类型:反射型文件下载

利用难度:简单






漏洞分析


1 Spring组件介绍

Spring是一个Java/Java EE/.NET的分层应用程序框架。它是一个基于IOC和AOP构架多层J2EE系统的开源框架,模块化好且实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口。此外它采用的IOC可以很容易的实现Bean的装配,提供的AOP简洁易用并据此实现了Transaction Management等功能。Spring 提供简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量属性文件和帮助类。目前此框架的使用非常活跃。


2 漏洞描述

此漏洞由于Spring Framework并没有对filename传入的文件名进行严格的安全检测,攻击者可以通过截断的方式控制filename变量值,下载任意格式的文件。


漏洞点存在于ContentDisposition.java 中,SpringFramework对于响应包中http头部的Content-Disposition字段没有严格的检测。漏洞修复补丁如下图:

Spring Framework 反射型文件下载漏洞CVE-2020-5398

旧版本对于filename变量的处理只是简单的通过双引号分割的方式获取用户传入的filename变量值,攻击者可以通过构造闭合双引号的方式,截断双引号后面的字符串,从而达到控制文件名的目的。新版本中添加escapeQuotationsInFilename方法限制了filename中双引号的危害,escapeQuotationsInFilename方法会将filename中的字符串逐一检测,如果存在双引号,则用注释符注释双引号,从而破坏了双引号的功能。


3 漏洞复现


搭建SpringFramework5.2.2漏洞环境,直接在浏览器中进行get请求,在filename中传入精心构造的参数,效果如下:

Spring Framework 反射型文件下载漏洞CVE-2020-5398


影响范围


目前受影响的Spring Framework版本:

Spring Framework 5.2.0 - 5.2.2

Spring Framework 5.1.0 - 5.1.12

Spring Framework 5.0.0 - 5.0.15


修复建议


官方发布的最新版本已经修复了此漏洞,请受影响的用户下载最新版本防御此漏洞。


下载链接:https://github.com/spring-projects/spring-framework


时间轴


2020/1/16



Spring官方团队在安全更新中披露了一则Spring Framework反射型文件下载漏洞CVE-2020-5398。

2020/2/7



深信服千里目安全实验室成功复现此漏洞并发布漏洞分析文章。



点击阅读原文,及时关注深信服智安全Wiki平台查询漏洞的产品解决方案(需登录)~

Spring Framework 反射型文件下载漏洞CVE-2020-5398


原文始发于微信公众号(深信服千里目安全实验室):Spring Framework 反射型文件下载漏洞CVE-2020-5398

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月11日10:52:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Framework 反射型文件下载漏洞CVE-2020-5398https://cn-sec.com/archives/784967.html

发表评论

匿名网友 填写信息