返回列表 回復 發帖

SQL注入詳解

SQL注入詳解
SQL注入:利用現有應用程式,將(惡意)的SQL命令注入到後臺資料庫引擎執行的能力,這是SQL注入的標準釋義。

隨著B/S模式被廣泛的應用,用這種模式編寫應用程式的程式員也越來越多,但由於開發人員的水準和經驗參差不齊,相當一部分的開發人員在編寫代碼的時候,沒有對用戶的輸入數據或者是頁面中所攜帶的資訊(如Cookie)進行必要的合法性判斷,導致了攻擊者可以提交一段資料庫查詢代碼,根據程式返回的結果,獲得一些他想得到的數據。

SQL注入利用的是正常的HTTP服務端口,表面上看來和正常的web訪問沒有區別,隱蔽性極強,不易被發現。

SQL注入過程
SQL注入攻擊過程分為五個步驟:

第一步:判斷Web環境是否可以SQL注入。如果URL僅是對網頁的訪問,不存在SQL注入問題,如:http://news.xxx.com.cn/162414739931.shtml就是普通的網頁訪問。只有對數據庫進行動態查詢的業務才可能存在SQL注入,如:http://www.google.cn/webhp?id=39,其中?id=39表示資料庫查詢變數,這種語句會在資料庫中執行,因此可能會給資料庫帶來威脅。

第二步:尋找SQL注入點。完成上一步的片斷後,就要尋找可利用的注入漏洞,通過輸入一些特殊語句,可以根據流覽器返回資訊,判斷資料庫類型,從而構建資料庫查詢語句找到注入點。

第三步:猜解用戶名和密碼。資料庫中存放的表名、字段名都是有規律可言的。通過構建特殊資料庫語句在資料庫中依次查找表名、字段名、用戶名和密碼的長度,以及內容。這個猜測過程可以通過網上大量注入工具快速實現,並借助破解網站輕易破譯用戶密碼。

第四步:尋找WEB管理後臺入口。通常WEB後臺管理的介面不面向普通用戶

開放,要尋找到後臺的登陸路徑,可以利用掃描工具快速搜索到可能的登陸地址,依次進行嘗試,就可以試出管理臺的入口地址。

第五步:入侵和破壞。成功登陸後臺管理後,接下來就可以任意進行破壞行為,如篡改網頁、上傳木馬、修改、洩漏用戶資訊等,並進一步入侵資料庫伺服器。

SQL注入攻擊的特點:

變種極多,有經驗的攻擊者會手動調整攻擊參數,致使攻擊數據的變種是不可枚舉的,這導致傳統的特徵匹配檢測方法僅能識別相當少的攻擊,難以防範。

攻擊過程簡單,目前互聯網上流行眾多的SQL注入攻擊工具,攻擊者借助這些工具可很快對目標WEB系統實施攻擊和破壞。

危害大,由於WEB編程語言自身的缺陷以及具有安全編程能力的開發人員少之又少,大多數WEB業務系統均具有被SQL注入攻擊的可能。而攻擊者一旦攻擊成功,可以對控制整個WEB業務系統,對數據做任意的修改,破壞力達到及至。
SQL注入的危害和現狀

SQL注入的主要危害包括:

未經授權狀況下操作數據庫中的數據
惡意篡改網頁內容
私自添加系統帳號或者是資料庫使用者帳號
網頁掛木馬
……
據賽門鐵克2006年3月的互聯網安全威脅報告顯示:


目前有近70%的攻擊行為是基於WEB應用,而據CVE的2006年度統計數據顯示,SQL注入攻擊漏洞呈逐年上升的狀態,2006年更是達到了驚人的1078個,而這些還僅限於通用應用程式的漏洞,不包括更為龐大的專業web應用程式所存在的漏洞。


而針對SQL注入漏洞的各種攻擊工具和攻擊教程更是層出不窮,掌握1~2種攻擊工具的script guy(腳本小子)就可以輕易的攻破網路資料庫的防線:篡改數據、獲得許可權。
返回列表