黑客入門

摘要

        黑客,在大多數人的印象中非常神祕,成爲一個黑客是不少學計算機人的夢想。但是網上關於黑客的書籍以及教程非常少,而且有價值的書更加少,這給大多數想要學習這方面知識的人帶來了不小的難度。本文將從入門的角度,介紹網絡攻防的歷史以及基本原理,爲這方面感興趣的小夥伴提供一點經驗。

web攻防歷史

        早期的萬維網是僅有web站點構成,這些站點儲存基本的靜態文檔供用戶訪問。後來人們發明了瀏覽器,用它來檢索這些文檔。早期的相關信息流僅由服務器向瀏覽器單向傳送,對所有用戶不加區分。因此主要的安全問題集中在服務器端,攻擊者通過修改服務器上的文件,惡意引導用戶進行下載,從而達到入侵用戶的目的。這個時候爲了保障web安全,主要的技術是在服務器端研究防火牆,防止惡意入侵,從而達到保護網絡環境安全的目的。
       現在的web站點是非常複雜的應用程序,它們介於服務器和客戶端之間,可以支持註冊和登錄,金融交易,搜索等極其複雜的功能。用戶通過瀏覽器發出請求,傳給web站點,站點訪問服務器的數據對請求進行處理,然後返回給客戶端。現在web程序交互是雙向的,瀏覽器可以傳輸請求給服務器,服務器也可以返回請求給客戶端。而且現在的web程序,服務器上的很多數據都是比較私密的數據,是不允許用戶隨意查看的。因此現在的web安全問題變得非常複雜和多樣化。每一個web應用程序是不同的,所以它們對應的安全問題也不同,這就需要新的技術來保障網絡安全。

web程序的核心安全問題

現在web程序面臨的最基本的問題是:“用戶可以提交任意的輸入”,這是現在一切網絡攻防的起步點和落腳點。只要知道web站點的ip地址和端口,用戶就可以構造任意的輸入,從而達到入侵系統的目的。所以現在黑客攻擊網絡站點的本質是,利用站點的漏洞,構造出來惡意的請求數據,從而達到獲取服務器隱私數據,控制站點的目的。舉一個例子,圖片p1爲一個數據庫的表,表名爲jobs。假設我們現在有一個用戶名爲1,我們目的是查到該數據庫中所有的用戶的數據信息。

                                                                                                      p1

我們首先在瀏覽器輸入如下url:localhost:3452/EXcelUsingXSLT/Default.aspx?jobid=1,它會執行如下的查詢語句:
SELECT     job_id, job_desc, min_lvl, max_lvl
FROM         jobs
WHERE     (job_id = 1)
最終結果如圖p2所示。

p2
我們查出了id爲1的用戶對應的信息。我們現在想查詢所有用戶的信息,這個時候直接查詢是不行的,應爲我們不知道別的用戶的id。要查詢所有用戶信息,直觀上應該執行的語句是
SELECT     *
FROM         jobs
但是這條語句是無法直接執行的,因爲我們無法控制服務器端代碼,我們唯一可以控制的就是我們的請求,簡單來說就是url:localhost:3452/EXcelUsingXSLT/Default.aspx?之後的參數。我們構造如下的參數:jobid=1'or'1'='1,它對應的sql查詢語句如下:
SELECT     job_id, job_desc, min_lvl, max_lvl
FROM         jobs
WHERE     job_id = '1' OR '1' = 1'
最終結果如圖p3所示。

p3
就這樣,我們在僅僅知道服務器一個用戶名的條件下,查詢出了服務器所有的用戶信息。以上例子是一個惡意構造輸入來入侵系統的實例。在現在的web程序中,用戶可以改變請求參數,cookie和HTTP信息頭,然後發送給服務器。用戶可以用完全合法的輸入執行惡意的操作,傳統的防火牆無法識別,這就只能靠程序員寫程序的時候注意安全。但是一個複雜的程序不可能對所有情況進行驗證,這就是說,一個網絡程序,一定存在一些漏洞和風險,黑客要做的就是發現這些漏洞,構造輸入進行入侵。

總結

武功分爲內功和招式。想要成爲絕頂高手,一定要有深厚的內功基礎。而本文重點講了黑客攻防的一些基本的理論。現在大多數人學習的時候都喜歡去研究一些具體的招式,比如用幾個工具去攻擊一些玩具網站,然後覺得很有成就感。然而這些東西雖然學習起來快,但是很難在真正的網絡攻防中起到作用。要想真正成爲一名黑客,內功非常重要。所以建議各位小夥伴,欲速則不達,練好基礎,踏實前進。本文的例子參考了http://blog.csdn.net/stilling2006/article/details/8526458/,尊重原創









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章