2010-11-27

大猪蹄子·斌斌 2010-11-27 21:53:48

        不知道是谁把我的那个空间给挖出来了。根据统计,很有可能是蜘蛛犯的错。那个空间最有价值的就是一篇日志就是去年自己开发的一份源码,免费共享出来了。可是TAG自动扑捉到了文章核心的关键字及一些介绍的关键字。也许就是自己写的那个U盘加密,被蜘蛛给找出来的吧。我都无奈了~技术虽然给了我资本,可是这次可害苦我了,本来一些文章只是发泄写写,并不想让她知道。现在给我的感觉就像死了千年的干尸又被人他妈的挖出来了。又像Police对着thief说:这就是你在犯罪现场的指纹。这样的感觉真的很不爽。别让我知道是谁挖出来的。让我知道了最好祈祷别让我找到那个人的计算机。找到的话,我就让那计算机变干尸,让thief把police深埋地壳中心。

        昨天晚上死活都睡不着,看天RSS提示BSS里又人求助,一看问题是涉及到了CC攻击。CC攻击在我眼里真的是很低级的手法。一般只有网络上的菜鸟拿着那位大神开发出来的工具到处ChallengeCollapsar。因为睡不着,就顺手提示别人下处理方法。然后就这么看着电脑发呆到快1点~突然想到这个空间一般用起来没有什么问题,可是进行比较耗资源的行为的时候,经常会出现Service Unavailable。想想不对头啊,我这站点虽然有些网虫们无聊打酱油路过,可是访问量还没有带服务器过载的程度啊。于是乎,我就写了个小程序加载在站点上面。也许还有打酱油的童鞋们经过的时候,发现自己也有被CC攻击的时候,Copy去用。一段被深埋IT安全基层的源码,如果有转载的,就不用标释版权了。由于工作比较忙,就不做成zpi插件了,反正就是一复制,一添加,一加载。即可解决小型僵尸,CC,及DOS手法的攻击。

        防御CC攻击的手法有很多,比如说cookie,ip+cookie,session等等,如果是独立主机还可以使用龙盾IIS防火墙之类的服务器防护软件,不介绍其他的软件的原因是不想自己的个人喜欢影响别人的选择,更不想被人误认为广告。现在的小型站点及个人blog比较多,大多数都是用虚拟主机。独立主机的就可以走人了。这章并没有说独立服务器安全。

        我选择的是session,原因呢,就是用session方便,简单,还可以探测攻击者的IP,及屏蔽IP。

 

<%
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) = 10 '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 = "chinavb.net"
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
    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
%>

  这样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪个真实IP出现的次数多,就知道是谁在攻击了.将这个代码做成Conn.asp文件,替代那些连接数据库的文件,这样所有的数据库请求就连接到这个文件上,然后马上就能发现攻击的人。

        使用方法:把上面代码,复制进ASP文件,然后放在服务器上面,然后加载该文件

<!-- #include file="XXXX.asp" -->

B20061026 561 0

«    2023年10月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
Music