?

Sep 03 2016

Squid遠程拒絕服務漏洞分析

首頁 » 漏洞收集 » Squid遠程拒絕服務漏洞分析   

簡介】


Squid Cache是HTTP代理服務器軟件。Squid用途廣泛的,可以作為緩存服務器,可以過濾流量幫助網絡安全,也可以作為代理服務器鏈中的一環,向上級代理轉發數據或直接連接互聯網。 

2016年2月23日。Squid官方發布了安全公告,指出修復多個遠程拒絕服務漏洞http://www.squid-cache.org/Advisories/SQUID-2016_2.txt),這幾個漏洞危害較大,只需要一個HTTP請求即可遠程DoS squid cache server。 


【分析】


筆者對其中一個漏洞補丁進行了分析,發現漏洞的緣由主要由assert函數引起的(http://www.squid-cache.org/Versions/v3/3.5/changesets/squid-3.5-13991.patch) 。

Assert函數在C程序中稱為斷言(assertion),用來提示一些可能存在的錯誤。主要用于程序調試。 


函數用法: 

#include  void assert( int exp );

功能: 
assert用于錯誤檢測,如果表達式exp的結果為零(假),則向STDERR打印錯誤信息并退出程序(崩潰),為1(真),則程序繼續運行。

Squid 程序在禁止http header 字符串大小為64KB的判斷時使用的assert函數 。

 

1.jpg

 

 

另外,Squid對緩存實現了Vary機制,Vary機制是http1.1 協議的新特性,可使server端可以根據用戶請求返回給用戶不同的內容。Squid的vary機制大致是先對vary http頭內容進行逐個壓縮緩存,再通過緩存進行索引。漏洞觸發的代碼就發送在緩存vary頭內容,利用assert對緩存內容限制在64KB。 

當攻擊者發送帶有超過64KB大小的Vary頭的HTTP請求時,觸發assert函數錯誤,打印錯誤信息,程序崩潰。

2.jpg

 

 

如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽: Squidddos

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «Bypass UAC的一個實例分析 | Hack Redis via Python urllib HTTP Header Injection»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖