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注入是怎麼產...