當前位置:
首頁 > 新聞 > CSRF(跨站點請求偽造)在Flash中的利用

CSRF(跨站點請求偽造)在Flash中的利用

0x00 前言


CSRF(Cross-site request forgery)跨站請求偽造,也被稱為「One Click Attack」或者Session Riding,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用。儘管聽起來像跨站腳本(XSS),但它與XSS非常不同,XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進行防範的資源也相當稀少)和難以防範,所以被認為比XSS更具危險性。


對於大多數網站,瀏覽器請求會自動包含任何與網站相關的憑證,例如用戶的會話cookie,IP地址,Windows域憑證等等

大家都知道CSRF攻擊,使用burpsuite里自帶的增強工具(engagement tools)可以很容易地構造各種基本的CSRF攻擊POC,包括通過XHR請求進行的CSRF攻擊。


在這篇文章中,我將要談論我經常遇到的CSRF場景,並且我將儘可能嘗試講清楚.


0x01 正文


接下來的兩種方法可以用在使用JSON格式數據進行post請求的情況下.比如{「name」:」test」, 「email」:」victim.com」} ,有以下兩個場景.


場景1


伺服器查找json格式的數據,但不驗證內容類型


場景2


伺服器尋找json格式的數據並驗證Content-type,也就是application / json

注意:這個csrf攻擊只適用於應用程序只依賴json格式的數據或內容類型的應用程序/ json和數據格式檢查,如果有任何額外的csrf標記/ referer檢查的地方這將無法正常工作。


開發案例1:


只要使用Fetch請求就可以完成,正如我們所知,在這種情況下,伺服器只檢查發布的數據是否格式正確,如果是,它將接受請求,而不管內容類型是否設置為文本/純文本


現在假設我們必須將這個測試數據提交給易受攻擊的應用程序:{「name」:「attacker」,「email」:「attacker@gmail.com」}


更新的方法:



資料來源:http://research.rootme.in/forging-content-type-header-with-flash


以前的方法——使用form:


使用form構造JSON數據等然後發起post請求:



如果應用程序不關心在我看到的大多數情況下發生的額外數據,這將使用有效的json格式的數據發出請求並填充一些額外的數據。如果沒有,總是有第二種使用方式。



資料來源:

http://blog.opensecurityresearch.com/2012/02/json-csrf-with-parameter-padding.html


開發案例2:


在這裡即使應用程序正在驗證  內容類型和數據格式,這種攻擊也可以使用flash和307重定向來實現。

要求:



精心製作的Flash文件


跨域XML文件


帶有307個狀態的PHP文件


精心製作的flash文件:


這個flash(.swf)文件有我們的json格式的數據,攻擊者必須在目標應用程序上發布,並鏈接到託管的php文件。



這裡是測試的  SWF文件,你可以根據你的需要下載和編輯內容,我使用FFDec在Windows上進行編輯和編譯Flash文件,你可以根據你的環境檢查其他人。


crossdomain XML文件:



這個文件應該放在攻擊者網站的根目錄下,這樣Flash文件就可以向攻擊者的主機發送請求。


注意:如果Flash文件&重定向器頁面在同一個域,則不需要crossdomain文件。


重定向的PHP文件



Flash文件請求這個php文件,這將使307重定向到提到的應用程序端點,並且307是特殊的重定向,它將從Flash文件接收到的JSON數據也post到目標端點,並且CSRF將成功執行.



注意:因為這是基於快閃記憶體的,所以應該在瀏覽器中安裝快閃記憶體以使其工作。


*本文作者Geekboy,淼淼兮與懷翻譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

Web黑盒滲透思路之猜想

TAG:FreeBuf |