sql注入筆記

2021-09-09 02:47:34 字數 905 閱讀 4686

1.什麼是sql注入:

sql注入是將sql**新增到輸入引數中,傳遞sql伺服器解析並執行的一種攻擊手法。

sql引數未經過濾直接拼接到sql語句當中, 解析執行,到達預想之外的效果

$sql=" select * from  where id=-1 or 1=1";  //or 1=1  條件查詢整張表的

2.sql注入是怎麼產生的

web開發人員無法做到所有的輸入都已經過濾;

攻擊者利用傳送給sql伺服器的輸入資料,構造可執行的sql**;

資料庫未做相應安全配置。

3.尋找sql注入漏洞

借助邏輯推理:

識別web應用中的所有輸入點:get資料、 post資料,http頭資訊

了解哪些型別的請求會觸發異常:在get或post提交資料時,新增單引號,多引號

檢測伺服器相應中的異常:

4.如何進行sql注入攻擊:

數字注入:在where條件中新增數字 ,如 select * from  where id=-1 or 1=1

字串注入:在使用者名稱input框輸入;admin'# '閉合字串,#注釋後面的密碼資訊,或者用 -- 代替 # 都起到注釋後面密碼資訊的作用。

5.如何預防sql注入

a.嚴格檢查輸入變數的型別和格式;

//數字校驗

if (empty($id) || !is_numeric($id))

//字元校驗

if (empty($name)||preg_match('/^[a-za-z0-9]$/',$name))

b.過濾和轉義特殊字元:包括單引號,雙引號,反斜槓,通過addslashes()轉義,

或者通過mysqli_real_escape_string()效果一樣。

c.利用mysqli的預編譯機制

sql注入(筆記)

一般注入,select注入 1.注釋符號 2.過濾空格注入 使用 或 或 代替空格 0c form feed,new page 09 horizontal tab 0d carriage return 0a line feed,new line3.多條顯示 concat group concat c...

sql注入筆記

sql注入sql注入 盲注 1.判斷是否存在注入,注入是字元型還是數字型 2.猜解當前資料庫名 3.猜解資料庫中的表名 4.猜解表中的欄位名 5.猜解資料 sql注入步驟 開始攻擊 一般用於試驗的字串是 1 and 1 2 會導致查詢結果為空 輸入 1 or 1234 1234,確認是否有漏洞。如果...

sql注入筆記

1.什麼是sql注入 sql注入是將sql 新增到輸入引數中,傳遞sql伺服器解析並執行的一種攻擊手法。sql引數未經過濾直接拼接到sql語句當中,解析執行,到達預想之外的效果 sql select from where id 1 or 1 1 or 1 1 條件查詢整張表的 2.sql注入是怎麼產...