利用Param Miner挖掘基于緩存中毒的XSS漏洞
一顆小胡椒2023-02-13 11:13:31
背景介紹:
你肯定聽說過緩存中毒(Cache Poisoning),這個漏洞存在的時間相當久遠,本篇文章并不是要追溯緩存中毒的歷史,而是通過案例對你有更多的啟發。

Param Miner:
Param Miner是Burp Pro的一款擴展插件(雖然它也適用于Burp社區版,但會有很多限制),它除了測試隱藏參數之外,還能夠測試緩存中毒,配合Burp Pro的Scanner來檢測XSS,有時能獲得一些意想不到的收獲。

看到上圖,有點小興奮。經過確認排除誤報后,Param Miner 發現了一個隱藏的Header參數,該參數在網站主頁的正文中反映了它的值。
在最初的審查中,使用repeater反復進行驗證是一個漫長的過程。在試圖復制結果然后使用火狐瀏覽器打開時卻無法復現,通過檢查源代碼,并未發現該參數的痕跡,因此也就無法觸發xss,那么究竟是怎么回事呢?
Poc:
使用 curl 命令的 bash 腳本來嘗試攻擊:

Curl 配合 Grep 來檢查響應:
curl https://website.com | grep “testing”
事實證明,緩存被清除得相當快,但還是不夠快!
讓 Burp Intruder 持續運行,并且 curl 響應包含隱藏參數,但 Firefox 和 Chrome 會渲染沒有隱藏參數的網站,在經歷了無數次嘗試和失敗中,最終考慮換用 MS Edge 來打開了目標網站,最終 curl 的 bash 腳本如下?
curl -H “User-Agent: tester” -H “hidden-header: script><h2>TESTERING2333<img src=x onerror=alert(document.domain)>” https://website.com/
幾次網頁刷新后,彈窗終于出現:

希望本文可以啟發你一些新想法,或是重燃某些舊想法,此外有一個重要提醒??:當Chrome和FireFox瀏覽器失敗時,不如嘗試一下 MS Edge,它可能正是你的‘救星’。
一顆小胡椒
暫無描述