大家都有過(guò)這種體驗(yàn)吧,進(jìn)大論壇的時(shí)候特別卡,頁(yè)面半天打不開(kāi)。其實(shí)人越多、帖子越多,數(shù)據(jù)庫(kù)越大,服務(wù)器壓力就越頂不住,所以很多主機(jī)商都不讓搭論壇、聊天室這些東西。
靜態(tài)頁(yè)面基本不怎么耗資源,直接從內(nèi)存調(diào)就行,但論壇不一樣。你看個(gè)帖,系統(tǒng)得先查你有沒(méi)有權(quán)限,再讀內(nèi)容——光這一下就得連查兩次數(shù)據(jù)庫(kù)。要是庫(kù)有200MB,那就得在里面一頓猛找,CPU直接拉滿。要是搜關(guān)鍵詞更狠,得全庫(kù)掃描,耗時(shí)翻倍。
CC攻擊就是鉆這個(gè)空子,用一堆線程模擬真實(shí)用戶,瘋狂刷那些費(fèi)資源的頁(yè)面,比如搜索頁(yè)。為啥要用代理?一是隱身,二是繞防火墻。大多數(shù)防火墻會(huì)檢測(cè)并發(fā)連接數(shù),太多太快就判定為CC或SYN洪水給攔了。
用代理還能持續(xù)加壓。我們發(fā)完請(qǐng)求就斷,代理還連著目標(biāo),等于一直占著坑不走。聽(tīng)說(shuō)有人用2000個(gè)代理干出35萬(wàn)并發(fā),太離譜了。
舉個(gè)例子:假設(shè)search.asp處理一次要0.01秒,一秒最多扛100個(gè)請(qǐng)求,最大連接時(shí)間60秒。我們搞120個(gè)并發(fā)去沖,一分鐘下來(lái)請(qǐng)求7200次,它只能處理6000次,剩下1200個(gè)堆那兒。有人說(shuō)丟連接不就完了?問(wèn)題是服務(wù)器按順序處理,這1200個(gè)是最后10秒來(lái)的,輪不到丟。等到服務(wù)器想甩連接時(shí),隊(duì)列里已經(jīng)有7200個(gè)了,它一邊丟120個(gè)/秒,我們一邊補(bǔ)120個(gè)/秒,永遠(yuǎn)清不完。CPU直接100%,持續(xù)高負(fù)載,新來(lái)的請(qǐng)求全都癱瘓,服務(wù)徹底卡死。
這招不止能搞網(wǎng)頁(yè),F(xiàn)TP也能這么沖,TCP-FLOOD一樣好使,實(shí)測(cè)有效。
靜態(tài)頁(yè)面基本不怎么耗資源,直接從內(nèi)存調(diào)就行,但論壇不一樣。你看個(gè)帖,系統(tǒng)得先查你有沒(méi)有權(quán)限,再讀內(nèi)容——光這一下就得連查兩次數(shù)據(jù)庫(kù)。要是庫(kù)有200MB,那就得在里面一頓猛找,CPU直接拉滿。要是搜關(guān)鍵詞更狠,得全庫(kù)掃描,耗時(shí)翻倍。
CC攻擊就是鉆這個(gè)空子,用一堆線程模擬真實(shí)用戶,瘋狂刷那些費(fèi)資源的頁(yè)面,比如搜索頁(yè)。為啥要用代理?一是隱身,二是繞防火墻。大多數(shù)防火墻會(huì)檢測(cè)并發(fā)連接數(shù),太多太快就判定為CC或SYN洪水給攔了。
用代理還能持續(xù)加壓。我們發(fā)完請(qǐng)求就斷,代理還連著目標(biāo),等于一直占著坑不走。聽(tīng)說(shuō)有人用2000個(gè)代理干出35萬(wàn)并發(fā),太離譜了。
舉個(gè)例子:假設(shè)search.asp處理一次要0.01秒,一秒最多扛100個(gè)請(qǐng)求,最大連接時(shí)間60秒。我們搞120個(gè)并發(fā)去沖,一分鐘下來(lái)請(qǐng)求7200次,它只能處理6000次,剩下1200個(gè)堆那兒。有人說(shuō)丟連接不就完了?問(wèn)題是服務(wù)器按順序處理,這1200個(gè)是最后10秒來(lái)的,輪不到丟。等到服務(wù)器想甩連接時(shí),隊(duì)列里已經(jīng)有7200個(gè)了,它一邊丟120個(gè)/秒,我們一邊補(bǔ)120個(gè)/秒,永遠(yuǎn)清不完。CPU直接100%,持續(xù)高負(fù)載,新來(lái)的請(qǐng)求全都癱瘓,服務(wù)徹底卡死。
這招不止能搞網(wǎng)頁(yè),F(xiàn)TP也能這么沖,TCP-FLOOD一樣好使,實(shí)測(cè)有效。