sql注入:利用現有應用程式,將(惡意)的sql命令注入到後台資料庫引擎執行的能力,這是sql注入的標準釋義。
隨著b/s模式被廣泛的應用,用這種模式編寫應用程式的程式設計師也越來越多,但由於開發人員的水平和經驗參差不齊,相當一部分的開發人員在編寫**的時候,沒有對使用者的輸入資料或者是頁面中所攜帶的資訊(如cookie)進行必要的合法性判斷,導致了攻擊者可以提交一段資料庫查詢**,根據程式返回的結果,獲得一些他想得到的資料。
sql注入利用的是正常的http服務埠,表面上看來和正常的web訪問沒有區別,隱蔽性極強,不易被發現。
sql注入過程
如上圖所示,sql注入攻擊過程分為五個步驟:
第一步:判斷web環境是否可以sql注入。如果url僅是對網頁的訪問,不存在sql注入問題,如:就是普通的網頁訪問。只有對資料庫進行動態查詢的業務才可能存在sql注入,如:其中?id=39表示資料庫查詢變數,這種語句會在資料庫中執行,因此可能會給資料庫帶來威脅。
第二步:尋找sql注入點。完成上一步的片斷後,就要尋找可利用的注入漏洞,通過輸入一些特殊語句,可以根據瀏覽器返回資訊,判斷資料庫型別,從而構建資料庫查詢語句找到注入點。
第三步:猜解使用者名稱和密碼。資料庫中存放的表名、欄位名都是有規律可言的。通過構建特殊資料庫語句在資料庫中依次查詢表名、欄位名、使用者名稱和密碼的長度,以及內容。這個猜測過程可以通過網上大量注入工具快速實現,並借助破解**輕易破譯使用者密碼。
第四步:尋找web管理後台入口。通常web後台管理的介面不面向普通使用者開放,要尋找到後台的登陸路徑,可以利用掃瞄工具快速搜尋到可能的登陸位址,依次進行嘗試,就可以試出管理臺的入口位址。
第五步:入侵和破壞。成功登陸後台管理後,接下來就可以任意進行破壞行為,如篡改網頁、上傳木馬、修改、洩漏使用者資訊等,並進一步入侵資料庫伺服器。
sql注入攻擊的特點:
變種極多,有經驗的攻擊者會手動調整攻擊引數,致使攻擊資料的變種是不可列舉的,這導致傳統的特徵匹配檢測方法僅能識別相當少的攻擊,難以防範。
攻擊過程簡單,目前網際網路上流行眾多的sql注入攻擊工具,攻擊者借助這些工具可很快對目標web系統實施攻擊和破壞。
危害大,由於web程式語言自身的缺陷以及具有安全程式設計能力的開發人員少之又少,大多數web業務系統均具有被sql注入攻擊的可能。而攻擊者一旦攻擊成功,可以對控制整個web業務系統,對資料做任意的修改,破壞力達到及至。
sql注入的危害和現狀
sql注入的主要危害包括:
未經授權狀況下運算元據庫中的資料
惡意篡改網頁內容
私自新增系統帳號或者是資料庫使用者帳號
網頁掛木馬
而針對sql注入漏洞的各種攻擊工具和攻擊教程更是層出不窮,掌握1~2種攻擊工具的script guy(指令碼小子)就可以輕易的攻破網路資料庫的防線:篡改資料、獲得許可權……
第2課 什麼是SQL注入
sql注入 利用現有應用程式,將 惡意 的sql命令注入到後台資料庫引擎執行的能力,這是sql注入的標準釋義。隨著b s模式被廣泛的應用,用這種模式編寫應用程式的程式設計師也越來越多,但由於開發人員的水平和經驗參差不齊,相當一部分的開發人員在編寫 的時候,沒有對使用者的輸入資料或者是頁面中所攜帶的資...
什麼是SQL注入
本文純屬以個人的角度去看待sql注入,有些地方不足,請各位讀者指點批評 什麼sql注入,為什麼會發生sql注入,sql注入的危害,怎樣預防sql注入 sql注入 注入結構化查詢語言 所謂sql注入,就是通過把sql命令插入到web表單中 此處涉及到sql注入的點 提交最終達到欺騙伺服器執行惡意的sq...
什麼是sql注入,怎麼防止SQL注入?
防止sql注入 什麼是sql注入?如何防止sql注入?sql語句引數化 防止sql注入的示例 from pymysql import connect def main find name input 請輸 物品名稱 建立connection連線 conn connect host localhost...