時間:2019-12-18來源:系統城作者:電腦系統城
CC攻擊(Challenge Collapsar)是DDOS(分布式拒絕服務)的一種,也是一種常見的網站攻擊方法,攻擊者通過代理服務器或者肉雞向向受害主機不停地發大量數據包,造成對方服務器資源耗盡,一直到宕機崩潰。
CC攻擊的攻擊技術含量低,利用工具和一些IP代理,一個初、中級的電腦水平的用戶就能夠實施攻擊。不過,如果了解了CC攻擊的原理,那就不難針對CC攻擊實施一些有效的防范措施。
通常防止CC攻擊的方法有幾種,一個是通過防火墻,另外一些網絡公司也提供了一些防火墻服務,例如XX網站衛士和XX寶,還有一種方法是自己寫程序預防,昨天網站遇到CC攻擊,這也讓我嘗試了一下各種防止CC攻擊方法的有效性。
一開始我想使用某某網站衛士來預防攻擊,從界面上看,似乎是防止了大量的CC攻擊,但登錄網站后發現,流量依舊異常,攻擊還是依舊,看起來這個網站衛士的效果并沒有達到。
從原理上看,基本上所有的防火墻都會檢測并發的TCP/IP連接數目,超過一定數目一定頻率就會被認為是Connection-Flood。但如果IP的數量足夠大,使得單個IP的連接數較少,那么防火墻未必能阻止CC攻擊。
不僅如此,我還發現,啟用了某某網站衛士之后,反而更容易被CC攻擊,因為這個網站衛士并不能過濾掉CC攻擊,攻擊的IP經過其加速后,更換成為這個網站衛士的IP,在網站服務器端顯示的IP都是相同的,導致服務器端無法過濾這些IP。
實際上,不使用網站衛士類的服務,直接通過分析網站日志,還是很容易分辨出哪個IP是CC攻擊的,因為CC攻擊畢竟是通過程序來抓取網頁,與普通瀏覽者的特性區別還是很大的,例如普通瀏覽者訪問一個網頁,必定會連續抓取網頁的HTML文件、CSS文件、JS文件和圖片等一系列相關文件,而CC攻擊者僅僅只會抓取一個URL地址的文件,不會抓取其他類型的文件,其User Agent也大部分和普通瀏覽者不同,這就可以在服務器上很容易分辨出哪些訪問者是CC攻擊了,既然可以判斷出攻擊者的IP,那么預防措施就很簡單,只需要批量將這些IP屏蔽,即可達到防范CC攻擊的目的。
最終,我花了半個小時寫了一段小程序,運行之后自動屏蔽了數百個IP,網站才算正常,從而證明,防火墻對于CC攻擊的防御并不有效,最有效的方法還是在服務器端通過程序自動屏蔽來預防。
看來CC攻擊的門檻還真低啊,搞個幾百個代理或者肉雞就能攻擊別人了,其成本非常低,但效果比較明顯,如果攻擊者流量巨大的話,通過耗費帶寬資源的方式都可以進行攻擊。但是,CC攻擊也有明顯的技術缺陷,就是攻擊者的IP并不是海量的,通常就是幾百數千的級別,并且是真實訪問了網站頁面,這就使得網站可以通過程序過濾的方式,輕松獲取到這些攻擊者IP,批量進行屏蔽,那么這種CC攻擊就會得到預防。
對于站長來說,通過程序來過濾CC攻擊門檻較高,要有一定的編程技術,因此還是建議使用第三方網站提供的預防CC的服務,目前主要的網站有:云鎖、安全狗、Cloudflare、百度云加速、360網站衛士等。
此外,下面還提供了一段基于ASP的防止CC攻擊的代碼,也供大家參考。
'防止CC攻擊
Dim CC_Info(4),strInfo,strTemp
If Session("CC_Info") = "" Then
CC_Info(0) = "cclog.txt" '日志文件名
CC_Info(1) = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
CC_Info(2) = Request.ServerVariables("REMOTE_ADDR")
CC_Info(3) = 4 'N秒內禁止刷新當前頁面
CC_Info(4) = "badip.txt" 'IP黑名單文件名
Session("CC_Info") = CC_Info(0) &"|"& CC_Info(1) &"|"& CC_Info(2) &"|"& CC_Info(3) &"|"& CC_Info(4)
Else
strInfo = Split(Session("CC_Info"),"|")
CC_Info(0) = strInfo(0)
CC_Info(1) = strInfo(1)
CC_Info(2) = strInfo(2)
CC_Info(3) = strInfo(3)
CC_Info(4) = strInfo(4)
End If
Const chkRefresh = 1 '0關閉防刷新
Const chkProxy = 1 '0關閉代理驗證
Const chkBadIP = 1 '0關閉IP黑名單
If Session("BadIP") = "" Then
strInfo = ReadFile(CC_Info(4))
If strInfo = "" Then strInfo = "williamlong.info"
Session("BadIP") = strInfo
Else
strInfo = Session("BadIP")
End If
'/*第一層判斷,N秒內禁止刷新*/
If chkRefresh = 1 Then
If Session("RefreshTime")="" Then
Session("RefreshTime")=Now()
Else
If DateDiff("s", Session("RefreshTime"), Now()) < CInt(CC_Info(3)) Then
SaveLog CC_Info(0),CC_Info(1) & "["& CC_Info(2) & "]" & Now() &vbCrLf
Response.Write("系統繁忙,請稍候再試!錯誤代碼001")
Response.End()
Else
Session("RefreshTime")=Now()
End If
End If
End If
'/*第二層判斷,代理禁止查看*/
If chkProxy = 1 Then
If CC_Info(1) <> "" Then
If InStr(strInfo,CC_Info(1)) = 0 Then
strTemp = CC_Info(1) & vbCrLf
If InStr(strInfo,CC_Info(2)) = 0 Then
strTemp = strTemp & "[" & CC_Info(2) & "]" & vbCrLf
End If
SaveLog CC_Info(4),strTemp
strInfo = strInfo & strTemp
Session("BadIP") = strInfo
End If
'記錄CC攻擊日志
SaveLog CC_Info(0),CC_Info(1) & "["& CC_Info(2) & "]" & Now() &vbCrLf
Response.Write("系統繁忙,請稍候再試!錯誤代碼002")
Response.End()
End If
End If
'/*第三層判斷,IP黑名單禁止查看*/
If chkBadIP = 1 Then
If InStr(strInfo,CC_Info(2))>0 Then
Response.Write("系統繁忙,請稍候再試!錯誤代碼003")
Response.End()
End If
End If
'ForReading=1,ForWriting=2,ForAppending=8
Function SaveLog(filename, filecontent)
On Error Resume Next
Dim fso, thisfile
filename = Server.MapPath(filename)
Set fso = CreateObject("Scripting.FileSystemObject")
If Err <> 0 Then
Response.Write("寫入文件"&filename&"失敗,可能您的系統不支持FSO!")
Response.End()
End If
Set thisfile = fso.OpenTextFile(filename, 8, True)
thisfile.write (filecontent)
thisfile.Close
Set fso = Nothing
End Function
Function ReadFile(filename)
On Error Resume Next
Dim fso, thisfile
Set fso = CreateObject("Scripting.FileSystemObject")
If Err <> 0 Then
Response.Write("讀取文件"&filename&"失敗,可能您的系統不支持FSO!")
Response.End()
End If
Set thisfile = fso.OpenTextFile(Server.MapPath(filename), 1, True)
ReadFile = thisfile.ReadAll
thisfile.Close
Set thisfile = Nothing
Set fso = Nothing
End Function
2020-09-27
Metasploit之漏洞利用( Metasploitable2)2020-08-31
Java安全編碼之SQL注入2020-04-19
360入局人臉識別,破解“安全”障礙該怎么做?安全是DevOps中一個被誤解的元素,有些人認為,它不在DevOps的職權范圍之內,而另一些人則認為,它足夠重要(并且經常被忽視),因此建議您改為使用DevSecOps。不過,無論您認同哪一方的觀點,一個很明顯的事實是,網絡安全都會影響到...
2020-04-19