東塔 | Web緩存欺騙***

0x00漏洞信息

披露者:Ron Reshef (ronr)php

嚴重程度:中危css

漏洞類型:Web緩存欺騙***html

0x01漏洞介紹

網站一般傾向於使用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看起來一點都不可疑。它看起來像原始網站上的普通網址,所以受害者認爲能夠單擊該連接。學習

0x02漏洞復現

***者將如下連接發送給受害者:https : //open.vanillaforums.com/messages/all/non-existent.css

受害者打開連接,收件箱頁面將正常加載。(而後,Web緩存服務器將保存此頁面)

***者打開相同的連接(https://open.vanillaforums.com/messages/all/non-existent.css),而後加載受害者及其全部私人競爭者的收件箱頁面

0x03漏洞影響

***者能夠獲取特定受害者的全部私人內容,而無需受害者知道。

這裏咱們能夠分下一下漏洞的原理和漏洞的利用條件(參考freebuf)

0x04漏洞原理

假設客戶端請求

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,是一個靜態頁面,而WEB服務器返回給緩存服務器的結果是http://www.example.com/home.php,不是一個靜態頁面,可是緩存服務器並不知道

0x05漏洞利用條件

  1. WEB服務器會將相似

http://www.example.com/home.php/nonexistent.css這種頁面解析爲home.php

2.緩存服務器會無視http header,只根據文件後綴來判斷是否緩存該文件

3.受害者訪問該頁面時必須已登陸

多數狀況下這個是能夠經過配置避免的,因此有些人認爲這不算是個漏洞,因此也並無什麼補丁來解決這個問題,估計這個問題在不少地方都存在。

0x06防護建議

1.配置緩存服務器根據http header來判斷是否緩存頁面;

2.將全部靜態文件放在指定的目錄,只緩存這個目錄裏的文件;

3.配置WEB服務器在解析相似http://www.example.com/home.php/nonexistent.css 這種頁面時返回404或者302。

0x07復現相關教程

Omer Gil創新地顛覆了WEB緩存欺騙利用方式,經過控制 Web 緩存能夠保存其它用戶的敏感數據,併成功在 Paypal 中實現了***復現

http://omergil.blogspot.com/2017/02/web-cache-deception-attack.html

翻譯自hackerone免責申明:本文由互聯網整理翻譯而來,僅供我的學習參考,若有侵權,請聯繫咱們,告知刪除。

相關文章
相關標籤/搜索