西(xī)安網站(zhàn)建設 | 西(xī)安網站(zhàn)制(zhì)作(zuò) | 西(xī)安網站(zhàn)設計(jì) | 西(xī$)安小(xiǎo)程序開(kāi)發 | 兄弟(dì)網絡 - 西(xī)安網站(zhàn)建設十餘年(nián)經驗,值得(d≤e)信賴!
了(le)解市(shì)場(chǎng)新觀點,內(nèi)部案例剖析,增強服務意識與專業(yè)水(shuǐ)平。

ASP網站(zhàn)黑(hēi)客攻擊及防範編程技(jì)巧(二)

來(lái)源:西(xī)安網站(zhàn)制(zhì)作(zuò)   日(rì)期:2015-05•-22 11:32:05   點擊:2878

7、防範遠(yuǎn)程注入攻擊

  這(zhè)類攻擊在以前應該是(shì)比較常見(jiàn)的(de)攻擊方式,比如(rú)POST攻擊,攻擊者可(kě)以随便的(de)改變要(yào)提交的(de)✘數(shù)據值已達到(dào)攻擊目的(de).又(yòu)如(rú):COOKIES 的(de)僞造,這(zhè)一(yī)點更值得(de)引起程序編寫者或站(♣zhàn)長(cháng)的(de)注意,不(bù)要(yào)使用(yòng)COOKIES來(lái)做(zuò)為(wèi)用(yòng)戶驗證的(de)方式Ω,否則你(nǐ)和(hé)把鑰匙留給賊是(shì)同一(yī)個(gè)道(dào)理(lǐ).

  比如(rú):

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

  我想各位站(zhàn)長(cháng)或者是(shì)喜好(hǎo)寫程序的(de)朋(péng)友(yǒu)千萬别出這(zhè≠)類錯(cuò)誤,真的(de)是(shì)不(bù)可(kě)饒恕.僞造COOKIES 都(dōu)多(duō)少(shǎo)年(nián)了(le),你(nǐ)還(hái)¶用(yòng)這(zhè)樣的(de)就(jiù)不(bù)能(néng)怪别人(rén)跑你(nǐ)的(de)密碼.涉及到(dào)用(yòng)戶密碼或者是(sπhì)用(yòng)戶登陸時(shí),你(nǐ)最好(hǎo)使用(yòng)session 它才是(shì)最安全的(de).如(rú)果≠要(yào)使用(yòng)COOKIES就(jiù)在你(nǐ)的(de)COOKIES上(shàng)多(duō)加一(yī)個(gè)信↕息,SessionID,它的(de)随機(jī)值是(shì)64位的(de),要(yào)猜解它,不(bù)可(kě)能(néng).例:

  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

  下(xià)面我們來(lái)談談如(rú)何防範遠(yuǎn)程注入攻擊,一(yī)般的(de)攻擊都(dōu)是(shì)将單表提交文(wén)件(jiàn)拖到(αdào)本地(dì),将Form ACTION=”chk.asp” 指向你(nǐ)服務器(qì)中處理(lǐ)數(shù)據的‌(de)文(wén)件(jiàn)即可(kě).如(rú)果你(nǐ)全部的(de)數(shù)據過濾都(dō u)在單表頁上(shàng),那(nà)麽恭喜你(nǐ),你(nǐ)将已經被腳本攻擊了(le).

  怎麽才能(néng)制(zhì)止這(zhè)樣的(de)遠(yuǎn)程攻擊?好(hǎo)辦,請(qǐng)看(kàn)代碼如(rú)下↕(xià): 程序體(tǐ)(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 "你(nǐ)提交的(de)路(lù)徑有(yǒu)誤,禁止從(cóng)站(zhàn)點外(wài)部提交數(shù)據請(qǐng)≥不(bù)要(yào)亂改參數(shù)!" 
  response.write " " 
  response.end 
  end if 
  %> 
‘個(gè)人(rén)感覺上(shàng)面的(de)代碼過濾不(bù)是(shì)很(hěn)好(hǎo),有(yǒ♣u)一(yī)些(xiē)外(wài)部提交竟然還(hái)能(néng)堂堂正正的(de)進來(lái),于是(shì)再寫一(yī)♥個(gè). 
  ‘這(zhè)個(gè)是(shì)過濾效果很(hěn)好(hǎo),建議(yì)使用(yòng). 
  if instr(request.servervariables("http_referer"),"http://"&request.servervariables("host") )<1 then response.write "處理(lǐ) URL 時(shí)服務器(qì)上(shàng)出錯(cuò)。 
如(rú)果您是(shì)在用(yòng)任何手段攻擊服務器(qì),那(nà)你(nǐ)應該慶幸,你(nǐ)的(de)所有(yǒu)操作(zuò)已經被服務器(qì)記錄,我們會(huì)&第一(yī)時(shí)間(jiān)通(tōng)知(zhī)公安局與國(guó)家(jiā)安全部門(mén)來(lái)調查你(nǐ)的(de)IP. " 
  response.end 
  end if

  程序體(tǐ)(9)

  本以為(wèi)這(zhè)樣就(jiù)萬事(shì)大(dà)吉了(le),在表格頁上(shàng)加一(yī)些(xiē)限制(zhì),比如( rú)maxlength啦,等等..但(dàn)天公就(jiù)是(shì)那(nà)麽不(bù)作(zuò)σ美(měi),你(nǐ)越怕什(shén)麽他(tā)越來(lái)什(shén)麽.你(nǐ)别忘了(le),攻擊者可(kγě)以突破sql注入攻擊時(shí)輸入框長(cháng)度的(de)限制(zhì).寫一(yī)個(gè)SOCKET程序改變HTTP_REFERER?∏我不(bù)會(huì)。網上(shàng)發表了(le)這(zhè)樣一(yī)篇文(wén)章(zhāng):

  ------------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-----------------------

  用(yòng)法:先把len.reg導入注冊表(注意文(wén)件(jiàn)路(lù)徑)

  然後把len.htm拷到(dào)注冊表中指定的(de)地(dì)方.

  打開(kāi)網頁[www.123z.cn],光(guāng)标放(fàng)在要(yào)改變長(cháng)度的(de)輸入框上(shàng)點右鍵,看(kàn)多(duō)了(‍le)一(yī)個(gè)叫擴展的(de)選項了(le)吧(ba)

  單擊搞定! 後記:同樣的(de)也(yě)就(jiù)可(kě)以對(duì)付那(nà)些(xiē)限制(zhì)輸入內(nèi)容的(d✘e)腳本了(le).

  怎麽辦?我們的(de)限制(zhì)被饒過了(le),所有(yǒu)的(de)努力都(dōu)白(bái)費(fèi)了(le)?不(bù),舉起你(nǐ)d≈e鍵盤,說(shuō)不(bù)。讓我們繼續回到(dào)腳本字符的(de)過濾吧(ba),他(tā)們所進行(xíng)的(d e)注入無非就(jiù)是(shì)進行(xíng)腳本攻擊。我們把所有(yǒu)的(de)精力全都(dōu)用(yòng)到(dào)ACTION以後的(de)頁面吧(ba),在chk.asp頁↕中,我們将非法的(de)字符全部過濾掉,結果如(rú)何?我們隻在前面虛晃一(yī)槍,叫他(tā)們去(qù)改注冊←表吧(ba),當他(tā)們改完才會(huì)發現(xiàn),他(tā)們所做(zuò)的(de)都(dōu)是♥(shì)那(nà)麽的(de)徒勞。

8、ASP木(mù)馬

  已經講到(dào)這(zhè)裡(lǐ)了(le),再提醒各位論壇站(zhàn)長(cháng)一(yī)句,小(xiǎo)心你(nǐ)們的(de)文(wén)件λ(jiàn)上(shàng)傳:為(wèi)什(shén)麽論壇程序被攻破後主機(jī)也(yě)随之被攻擊者占據。原因就(jiù)在……對(duì)!AS↓P木(mù)馬!一(yī)個(gè)絕對(duì)可(kě)惡的(de)東(dōng)西(xī)。病毒麽?非也(yě).把個(gè)文(εwén)件(jiàn)随便放(fàng)到(dào)你(nǐ)論壇的(de)程序中,您老(lǎo)找去(qù)吧(ba)。不(bù)吐血才怪哦。如(rú)何才能(néng)防止A&SP木(mù)馬被上(shàng)傳到(dào)服務器(qì)呢(ne)?方法很(hěn)簡單,如(rú)果你(nǐ)的(de)論壇支持文(wén)件(jiànσ)上(shàng)傳,請(qǐng)設定好(hǎo)你(nǐ)要(yào)上(shàng)傳的(de)文(wén)件(jià×n)格式,我不(bù)贊成使用(yòng)可(kě)更改的(de)文(wén)件(jiàn)格式,直接從(cóng)程序上(shàng)鎖定,隻有(yǒσu)圖象文(wén)件(jiàn)格式,和(hé)壓縮文(wén)件(jiàn)就(jiù)完全可(kě)以,多(duō)給自(zì)己留點方便也(yě')就(jiù)多(duō)給攻擊者留點方便。怎麽判斷格式,我這(zhè)裡(lǐ)收集了(le)一(yī)個(gè),也(yě)改出了(le)一(y​ī)個(gè),大(dà)家(jiā)可(kě)以看(kàn)一(yī)下(xià):

  程序體(tǐ)(10)

  '判斷文(wén)件(jiàn)類型是(shì)否合格 
  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 
  ‘驗證文(wén)件(jiàn)內(nèi)容的(de)合法性 
set MyFile = server.CreateObject ("Scripting.FileSystemObject") 
  set MyText = MyFile.OpenTextFile (sFile, 1) ' 讀(dú)取文(wén)本文(wén)件(j iàn) 
  sTextAll = lcase(MyText.ReadAll): MyText.close 
  '判斷用(yòng)戶文(wén)件(jiàn)中的(de)危險操作(zuò) 
  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&n§bsp;
  Response.write "<center><br><big>"& sFileSave &am✘p;"文(wén)件(jiàn)中含有(yǒu)與操作(zuò)目錄等有(yǒu)關的(de)命令"&_ 
  "<br><font color=red>"& mid(sNoString(i),2) &"</font>,為(wèi)了>(le)安全原因,<b>不(bù)能(néng)上(shàng)傳。<b>"&_"</big>< /center></html>" 
  Response.end 
  end if 
  next

  程序體(tǐ)(10)

  把他(tā)們加到(dào)你(nǐ)的(de)上(shàng)傳程序裡(lǐ)做(zuò)一(yī)次驗證,那(nà)麽你(nǐ)的(£de)上(shàng)傳程序安全性将會(huì)大(dà)大(dà)提高(gāo).

  什(shén)麽?你(nǐ)還(hái)不(bù)放(fàng)心?拿(ná)出殺手锏,請(qǐng)你(nǐ)的(de) 虛拟主機(jī)服務商來(lái)幫忙吧(ba)。登陸到(dào)服務器(qì),将PROG ID 中的(de)"shell.applica$tion"項和(hé)"shell.application.1"項改名或删除。再将”WSCRIPT.SHEL↔L”項和(hé)”WSCRIPT.SHELL.1”這(zhè)兩項都(dōu)要(yào)改名或删除。呵呵,我可(kě)以大¥(dà)膽的(de)說(shuō),國(guó)內(nèi)可(kě)能(néng)近(jìn)半以上(shàng)的(de)虛拟主機(jī)都(dōu)沒改過。隻能(néng)慶幸你(nǐ)<們的(de)用(yòng)戶很(hěn)合作(zuò),否則……我删,我删,我删删删……

上(shàng)一(yī)篇:ASP網站(zhàn)黑(hēi)客攻擊及防範編程技(jì)巧(一(yī))     下(xià)一(yī)篇:ASP木(mù)馬入侵原理(lǐ)及防範措施
掃碼立即溝通(tōng)
公衆号加關注
版權所有(yǒu):西安兄弟信息科技有限公司 京ICP證000000号   地(dì)址:西(xī)安市(shì)三橋街(jiē)道(dào)恒大(dà)都(dōu)市(shì)廣場(chǎng)(1号線沣東(dōng)自(z♠ì)貿園站(zhàn)C1口)  營業(yè)執照(zhào)      
關閉
029-86512630 工(gōng)作(zuò):8:30-17:30

*