sql注入原理

1.SQL注入
sql就是數據庫,像sql server,mysql,db2,postgresql,oracle等都是比較常見的數據庫,可以通過構造數據庫語句,也就是sql語句,進行增刪該查操作。
SQL注入是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。它是利用現有應用程序,將惡意的SQL命令注入到後臺數據庫引擎執行的能力,它可以通過在Web表單中輸入惡意SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。
2.產生SQL注入原因
動態網站是通過腳本語言去調用數據庫從而完成整個網站的運作,,對網站進行操作時,只要是涉及數據庫的操作都會帶入數據庫進行查詢,若沒有任何限制,則可以輸入任意的查詢語句帶入數據庫查詢。
sql注入就是限制用戶輸入不嚴引起的,也就是過濾不嚴。
3.SQL注入分類
從參數類型可以分爲:×××注入和字符型注入
從注入類型可以分爲以下幾類:
(1)基於錯誤的有顯示位的注入
(2)基於錯誤的有數據庫報錯信息的注入
(3)基於錯誤的沒有數據庫報錯信息的盲注
(4)基礎時間的盲注
4.SQL注入經典流程
(1)判斷Web系統使用的腳本語言,發現注入點,並確定是否存在SQL注入漏洞
(2)判斷Web系統的數據庫類型
(3)判斷數據庫中表及相應字段的結構
(4)構造注入語句,得到表中數據內容
(5)查找網站管理員後臺,用得到的管理員賬號和密碼登錄
(6)結合其他漏洞,想辦法上傳一個Webshell
(7)進一步提權,得到服務器的系統權限
5.判斷SQL注入方法
(1)最常用的方式:直接在url後面輸入and 1=1頁面返回正常,and 1=2頁面返回錯誤,或者是直接加單引號報錯,則有可能存在sql注入;
(2)也可採用or或者xor來判斷;
(3)在沒有錯誤回顯的情況下可以採用and sleep(1)來判斷;
(4)也可採用數學計算,例如 id=2和id=3-1返回測界面一樣,則有可能存在sql注入。
總體來說,輸入的語句影響了數據庫的查詢結果,那麼就極有可能存在sql注入。

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