什麼是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注入的主要危害包括:

未經授權狀況下操作數據庫中的數據

惡意篡改網頁內容

私自添加系統帳號或者是數據庫使用者帳號

網頁掛木馬

……

轉載自51cto.com

發佈了25 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章