一、SQL,SQL注入是什么
SQL是操作資料庫資料的結構化查詢陳述句,一般在網頁的應用資料和后臺資料庫中的資料進行互動式采用SQL,
SQL注入即在web應用程式對用戶輸入的資料的合法性沒有判斷或過濾不嚴而使得攻擊者可以在web應用程式中事先定義好的查詢陳述句的結尾上添加額外的SQL陳述句,在管理員不知情的情況下實作非法操作,以此來實作欺騙資料庫服務器執行非授權的任意查詢,從而進一步得到相應的資料資訊,
SQL注入將web頁面的URL,輸入的資料包修改成SQL陳述句,再傳給服務器,以此得到資料庫資訊,
二、注入原理
假設存在一條URL為:HTTP://www.wonton.com/test.php?id=1這時后臺資料庫的SQL陳述句可能是Select \* from table where id=1
如果我們在輸入框中加一個/,SQL陳述句變成Select \* from table where id=1/ 不符合語法,回傳錯誤
但如果我們輸入and 1 = 1,SQL陳述句變成Select \* from table where id=1 and 1 = 1 這樣邏輯永真,一定會回傳正確,
三、注入程序
1、判斷是否有注入
(1)URL/ 報錯
(2)URLand 1 = 1 回傳正常
(3)URLand 1 = 2 回傳錯誤
2、判斷服務器型別和資料庫型別
3、根據不同資料庫型別進行SQL注入攻擊
一般步驟為查看資料庫版本,查看資料庫名稱,查看表名,查看列名,
四、SQL注入分類
1.
* 數字型注入(輸入引數是數字)后臺的查詢daim為select email from member where id=$id
輸入1,變為select email from member where id=1
* 字符型注入(輸入引數是字符)
后臺的查詢為 select email from member where id='$id'
輸入1,變為select email from member where id='1'
####2.按照資料庫分類 mysql注入;SQL server注入;Oracle注入;Access注入 ####3. 基于報錯的SQL盲注;基于布爾SQL盲注;基于時間的SQL 盲注
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/239912.html
標籤:其他
