西安網(wǎng)站建設 | 西安網(wǎng)站制作 | 西安網(wǎng)站設計 | 西安小程序開發(fā) | 兄弟網(wǎng)絡 - 西安網(wǎng)站建設十余年經(jīng)驗,值得信賴!
了解市場新觀點,內部案例剖析,增強服務意識與專業(yè)水平。

ASP網(wǎng)站黑客攻擊及防范編程技巧(二)

來源:西安網(wǎng)站制作   日期:2015-05-22 11:32:05   點擊:2388

7、防范遠程注入攻擊

  這類攻擊在以前應該是比較常見的攻擊方式,比如POST攻擊,攻擊者可以隨便的改變要提交的數(shù)據(jù)值已達到攻擊目的.又如:COOKIES 的偽造,這一點更值得引起程序編寫者或站長的注意,不要使用COOKIES來做為用戶驗證的方式,否則你和把鑰匙留給賊是同一個道理.

  比如:

  If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd") =”fqy#e3i5.com” then 
  ……..more……… 
  End if

  我想各位站長或者是喜好寫程序的朋友千萬別出這類錯誤,真的是不可饒恕.偽造COOKIES 都多少年了,你還用這樣的就不能怪別人跑你的密碼.涉及到用戶密碼或者是用戶登陸時,你最好使用session 它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一個信息,SessionID,它的隨機值是64位的,要猜解它,不可能.例:

  if not (rs.BOF or rs.eof) then 
  login="true" 
  Session("username"&sessionID) = Username 
  Session("password"& sessionID) = Password 
  ‘Response.cookies(“username”)= Username 
  ‘Response.cookies(“Password”)= Password

  下面我們來談談如何防范遠程注入攻擊,一般的攻擊都是將單表提交文件拖到本地,將Form ACTION=”chk.asp” 指向你服務器中處理數(shù)據(jù)的文件即可.如果你全部的數(shù)據(jù)過濾都在單表頁上,那么恭喜你,你將已經(jīng)被腳本攻擊了.

  怎么才能制止這樣的遠程攻擊?好辦,請看代碼如下: 程序體(9)

 ?。? 
  server_v1=Cstr(Request.ServerVariables("HTTP_REFERER")) 
  server_v2=Cstr(Request.ServerVariables("SERVER_NAME")) 
  if mid(server_v1,8,len(server_v2))<>server_v2 then 
  response.write "<br><br><center>" 
  response.write " " 
  response.write "你提交的路徑有誤,禁止從站點外部提交數(shù)據(jù)請不要亂改參數(shù)!" 
  response.write " " 
  response.end 
  end if 
  %> 
‘個人感覺上面的代碼過濾不是很好,有一些外部提交竟然還能堂堂正正的進來,于是再寫一個. 
  ‘這個是過濾效果很好,建議使用. 
  if instr(request.servervariables("http_referer"),"http://"&request.servervariables("host") )<1 then response.write "處理 URL 時服務器上出錯。 
如果您是在用任何手段攻擊服務器,那你應該慶幸,你的所有操作已經(jīng)被服務器記錄,我們會第一時間通知公安局與國家安全部門來調查你的IP. " 
  response.end 
  end if

  程序體(9)

  本以為這樣就萬事大吉了,在表格頁上加一些限制,比如maxlength啦,等等..但天公就是那么不作美,你越怕什么他越來什么.你別忘了,攻擊者可以突破sql注入攻擊時輸入框長度的限制.寫一個SOCKET程序改變HTTP_REFERER?我不會。網(wǎng)上發(fā)表了這樣一篇文章:

  ------------len.reg----------------- 
  Windows Registry Editor Version 5.00 
  [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\擴展(&E)] 
  @="C:\Documents and Settings\Administrator\桌面\len.htm" 
  "contexts"=dword:00000004 
  -----------end---------------------- 
  -----------len.htm------------------ 
  ----------end-----------------------

  用法:先把len.reg導入注冊表(注意文件路徑)

  然后把len.htm拷到注冊表中指定的地方.

  打開網(wǎng)頁[www.123z.cn],光標放在要改變長度的輸入框上點右鍵,看多了一個叫擴展的選項了吧

  單擊搞定! 后記:同樣的也就可以對付那些限制輸入內容的腳本了.

  怎么辦?我們的限制被饒過了,所有的努力都白費了?不,舉起你de鍵盤,說不。讓我們繼續(xù)回到腳本字符的過濾吧,他們所進行的注入無非就是進行腳本攻擊。我們把所有的精力全都用到ACTION以后的頁面吧,在chk.asp頁中,我們將非法的字符全部過濾掉,結果如何?我們只在前面虛晃一槍,叫他們去改注冊表吧,當他們改完才會發(fā)現(xiàn),他們所做的都是那么的徒勞。

8、ASP木馬

  已經(jīng)講到這里了,再提醒各位論壇站長一句,小心你們的文件上傳:為什么論壇程序被攻破后主機也隨之被攻擊者占據(jù)。原因就在……對!ASP木馬!一個絕對可惡的東西。病毒么?非也.把個文件隨便放到你論壇的程序中,您老找去吧。不吐血才怪哦。如何才能防止ASP木馬被上傳到服務器呢?方法很簡單,如果你的論壇支持文件上傳,請設定好你要上傳的文件格式,我不贊成使用可更改的文件格式,直接從程序上鎖定,只有圖象文件格式,和壓縮文件就完全可以,多給自己留點方便也就多給攻擊者留點方便。怎么判斷格式,我這里收集了一個,也改出了一個,大家可以看一下:

  程序體(10)

  '判斷文件類型是否合格 
  Private Function CheckFileExt (fileEXT) 
  dim Forumupload 
  Forumupload="gif,jpg,bmp,jpeg" 
  Forumupload=split(Forumupload,",") 
  for i=0 to ubound(Forumupload) 
  if lcase(fileEXT)=lcase(trim(Forumupload(i))) then 
  CheckFileExt=true 
  exit Function 
  else 
  CheckFileExt=false 
  end if 
  next 
  End Function 
  ‘驗證文件內容的合法性 
set MyFile = server.CreateObject ("Scripting.FileSystemObject") 
  set MyText = MyFile.OpenTextFile (sFile, 1) ' 讀取文本文件 
  sTextAll = lcase(MyText.ReadAll): MyText.close 
  '判斷用戶文件中的危險操作 
  sStr ="8 .getfolder .createfolder .deletefolder .createdirectory  
  .deletedirectory" 
  sStr = sStr & " .saveas wscript.shell script.encode" 
  sNoString = split(sStr," ") 
  for i = 1 to sNoString(0) 
  if instr(sTextAll, sNoString(i)) <> 0 then 
  sFile = Upl.Path & sFileSave: fs.DeleteFile sFile 
  Response.write "<center><br><big>"& sFileSave &"文件中含有與操作目錄等有關的命令"&_ 
  "<br><font color=red>"& mid(sNoString(i),2) &"</font>,為了安全原因,<b>不能上傳。<b>"&_"</big></center></html>" 
  Response.end 
  end if 
  next

  程序體(10)

  把他們加到你的上傳程序里做一次驗證,那么你的上傳程序安全性將會大大提高.

  什么?你還不放心?拿出殺手锏,請你的虛擬主機服務商來幫忙吧。登陸到服務器,將PROG ID 中的"shell.application"項和"shell.application.1"項改名或刪除。再將”WSCRIPT.SHELL”項和”WSCRIPT.SHELL.1”這兩項都要改名或刪除。呵呵,我可以大膽的說,國內可能近半以上的虛擬主機都沒改過。只能慶幸你們的用戶很合作,否則……我刪,我刪,我刪刪刪……

上一篇:ASP網(wǎng)站黑客攻擊及防范編程技巧(一)     下一篇:ASP木馬入侵原理及防范措施
掃碼立即溝通
公眾號加關注
版權所有:西安兄弟信息科技有限公司 陜ICP備07012704號-8   地址:西安市三橋街道恒大都市廣場(1號線灃東自貿園站C1口)  營業(yè)執(zhí)照    網(wǎng)站地圖  
關閉
029-86512630 工作:8:30-17:30

*