披露者:Ron Reshef (ronr)php
嚴重程度:中危css
漏洞類型:Web緩存欺騙***html
網站一般傾向於使用Web緩存功能(例如,經過CDN,負載平衡器或簡單地經過反向代理)。目的很簡單:存儲常常檢索的文件,以減小Web服務器的延遲。web
訪問諸如http://www.example.com/home.php/non-existent.css之類的URL時,瀏覽器將生成對該URL的GET請求。瀏覽器
服務器返回http://www.example.com/home.php的內容。可是,URL仍爲http://www.example.com/home.php/non-existent.css。緩存
HTTP標頭與訪問http://www.example.com/home.php的相同直接:相同的緩存標題和相同的內容類型(在這種狀況下爲text / html)。服務器
Web緩存服務將返回的頁面保存在服務器的緩存中。網絡
而後,***者能夠訪問如下網址:http : //www.example.com/home.php/non-existent.css 而後能夠顯示受害者的頁面並獲取受害者的敏感信息(頁面內容)。ide
與網絡釣魚***不一樣,此***中的危險部分是該URL看起來一點都不可疑。它看起來像原始網站上的普通網址,所以受害者認爲能夠單擊該連接。學習
***者將如下連接發送給受害者:https : //open.vanillaforums.com/messages/all/non-existent.css
受害者打開連接,收件箱頁面將正常加載。(而後,Web緩存服務器將保存此頁面)
***者打開相同的連接(https://open.vanillaforums.com/messages/all/non-existent.css),而後加載受害者及其全部私人競爭者的收件箱頁面。
***者能夠獲取特定受害者的全部私人內容,而無需受害者知道。
這裏咱們能夠分下一下漏洞的原理和漏洞的利用條件(參考freebuf)
假設客戶端請求
http://www.example.com/home.php/nonexistent.css 這個URL,其中home.php是真實存在的,而nonexistent.css不存在,那WEB服務器會怎麼處理呢?針對這種狀況的處理跟WEB服務器用的技術以及配置相關,有的會返回404 not found,有的會返回200 OK,而後把home.php返回回來。若是服務器返回200 OK就要注意了,這時緩存服務器拿到的請求是
http://www.example.com/home.php/nonexistent.css這種頁面解析爲home.php
2.緩存服務器會無視http header,只根據文件後綴來判斷是否緩存該文件
3.受害者訪問該頁面時必須已登陸
多數狀況下這個是能夠經過配置避免的,因此有些人認爲這不算是個漏洞,因此也並無什麼補丁來解決這個問題,估計這個問題在不少地方都存在。
1.配置緩存服務器根據http header來判斷是否緩存頁面;
2.將全部靜態文件放在指定的目錄,只緩存這個目錄裏的文件;
3.配置WEB服務器在解析相似http://www.example.com/home.php/nonexistent.css 這種頁面時返回404或者302。
Omer Gil創新地顛覆了WEB緩存欺騙利用方式,經過控制 Web 緩存能夠保存其它用戶的敏感數據,併成功在 Paypal 中實現了***復現
http://omergil.blogspot.com/2017/02/web-cache-deception-attack.html
翻譯自hackerone免責申明:本文由互聯網整理翻譯而來,僅供我的學習參考,若有侵權,請聯繫咱們,告知刪除。