小心你的WEB應(yīng)用程序成為數(shù)據(jù)竊賊的幫兇 |
發(fā)布時間: 2012/6/11 19:27:05 |
當心,你以為固若金湯的數(shù)據(jù)庫可能已遭到了入侵。你需要重新思考一下自己公司的網(wǎng)站是否真得不會遭到SQL注入攻擊。SQL注入是最流行也是最危險的Web應(yīng)用程序漏洞利用技術(shù),它可以攻擊存儲著珍貴企業(yè)信息的后端數(shù)據(jù)庫,且“簡約高效”。
本文將闡述攻擊者如何通過這種方法來利用Web應(yīng)用程序的漏洞。有時,即使攻擊者也不了解自己正在利用的漏洞的性質(zhì)。 何為SQL注入 就其最基本的意義來說,SQL注入只不過是操縱一個已有的SQL查詢,執(zhí)行一個并非開發(fā)人員意圖的動作。這種動作通常是通過Web應(yīng)用程序的用戶界面完成的。 但這種攻擊是如何進行的?它為什么屢屢得逞? Web應(yīng)用程序和數(shù)據(jù)庫之間的正常交互 所有的SQL注入漏洞都是由某些未經(jīng)驗證的用戶輸入開始的。用戶輸入可以采取多種形式,它可以包括一個攻擊者操縱的由億恩科技服務(wù)器處理的任何東西,例如:用戶代理、HTTP報頭、POST參數(shù)、cookies、GET參數(shù),甚至網(wǎng)址標頭等。是什么令未經(jīng)驗證的用戶輸入如此特殊呢?答案是:應(yīng)用程序并沒有對其進行充分的檢查,從而不能確保所收到的輸入就是所期望的類型和方式。例如,雖然你的應(yīng)用程序的編制目的是為了接收可以包括字母、數(shù)字的字符串作為用戶名,但此程序并沒有驗證輸入,從而使得黑客可以插入SQL注入的數(shù)據(jù)庫查詢: 比如,一個典型的網(wǎng)站會要求你的用戶名,并希望這個結(jié)果是“Zhangsan”: Wangzhan.com/usertetail.asp?username=Zhangsan 在這個例子中,有可能會發(fā)生這樣的情況:某個查詢促使網(wǎng)站在后臺與數(shù)據(jù)庫交互,從而獲取關(guān)于用戶(如,Zhangsan)的信息: SELECT uname,fname,lname,phone,street,city,state,zip FROM users WHERE user =$var_username 當Web應(yīng)用程序代碼處理這個請求時,為了完成查詢,來自用戶名的值(Zhangsan)被傳遞給$var_username。億恩科技服務(wù)器應(yīng)當將SQL查詢的結(jié)果變成標準格式,并顯示此結(jié)果以便于用戶查看Zhangsan的細節(jié)。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |