大家好!

大約幾天前,我在一個漏洞懸賞項目中利用Web緩存欺騙攻擊成功獲得他人敏感信息。這篇文章我將詳細說明這次攻擊流程。

在說明我的PoC之前,我想詳細解釋一下緩存欺騙攻擊和其影響。

Web緩存欺騙攻擊是由於Web應用未正確使用緩存功能而引起的,攻擊者往往能獲得緩存中的敏感數據。

在這種攻擊場景下,後台的Web應用程序通常會利用代理、cdn和其他服務來實現緩存功能。一般來說,緩存功能可以有效減少伺服器的工作負荷,縮短通信延遲,但很容易配置不當,形成漏洞。

假設有一個網址為www.example.com/home.php的網站,如果你在該URL的末尾附加一個額外的文件擴展,比如www.example.com/home.php/a.jpg,並且該網站具有緩存功能,那麼它就會把這個請求的相關信息緩存到指定伺服器的緩存目錄下。當然,這個文件擴展名也可以是其他,例如.css,.jpg,.js等。

因此,一旦有用戶訪問了有漏洞的網站,並緩存了信息,那麼攻擊者就有機會通過訪問同樣的端點來獲得受害者的信息。

main

上個星期,我參加了一個保密的滲透測試項目,遇到了三個不同的目標:

app.example.com

example.com

manage.example.com

測試者可以在example.com網站中註冊並登錄。

app.example.com網站主要涉及開發app;manage.example.com主要涉及其他服務的身份驗證。

假設,example.com網站如下所示:

當如上頁面載入時,我沒有觀察到有緩存控制的請求頭。因此,我決定試一試。

我隨意訪問了一個端點example.com/welcome.css

很正常,返回了404,但在這個404錯誤頁面中,它仍然有一個「go to your workspace」(和session有關),這貌似是一個可利用標記。

接著,我以匿名模式訪問了同一個端點。這時,它只顯示了2到3秒的「Go to your Workspace」,然後就立馬變成登錄和註冊界面。這些都在一瞬間完成。

我當時的表情:

也許,由於session沒有被正確地緩存,所以有那麼一瞬間,出現了「Go to your Workspace」,雖然立刻就變成了註冊和登錄頁面,但這說明一些用戶的敏感信息被緩存了。所以,讓我們試試view-souce:example.com/welcome.css,看看能找到什麼。

OK!我的敏感信息似乎已經完全被泄露了。

第1個網站完成

我立馬試了試app.example.com,但這次運氣不夠好。

那麼,試試最後一個manage.example.com

manage.example.com可讓用戶進入slack的工作區,同時還提供api來檢索信息。

因此,當我嘗試訪問manage.example.com時,它會將我重定向到app.example.com,看起來伺服器後端設置了路由規則。這意味著只能訪問manage.example.com下的/api端點或/auth端點。

於是,我開始簡單地嘗試/a這樣的路徑,響應如下。

嗯,看樣子好像是沒什麼希望了。

但是,我突然發現了HTTP請求中沒有緩存控制頭。那漏洞到底存在么?

我嘗試訪問像manage.example.com/hello.css這樣的端點,結果響應與上面相同。

但是當我以匿名模式訪問同一個端點時,它貌似緩存了信息,和正常模式下的頁面視圖相同。

最後,我嘗試訪問view-source://manage.example.com/hello.css端點,這一次,與example.com相比,更多的敏感信息被泄露。

時間線

2019年2月9日:提交報告。

2019年2月11日:審核報告。

2019年2月21日:報告通過,獲得150美元+150美元的獎勵。

總結

  • HTTP請求頭中緩存控制頭的存在與否和是否有漏洞是兩回事。還要考慮伺服器後端路由的設置。
  • 並不是404錯誤頁面就代表漏洞存在,還和頁面源碼有關。
  • 最後,仔細檢查,一遍又一遍分析所有的發現,才是最重要的。

本文由白帽彙整理並翻譯,不代表白帽匯任何觀點和立場

來源:利用緩存欺騙獲取他人敏感信息|NOSEC安全訊息平台 - NOSEC.ORG

原文:medium.com/@kunal94/web

白帽匯從事信息安全,專註於安全大數據、企業威脅情報。

公司產品:FOFA-網路空間安全搜索引擎、FOEYE-網路空間檢索系統、NOSEC-安全訊息平台。

為您提供:網路空間測繪、企業資產收集、企業威脅情報、應急響應服務。

推薦閱讀:

相关文章