order by的注入
这里我们先介绍一下逻辑运算符
逻辑运算符是按位进行运算的
首先将十进制转化为二进制,再进行按位运算;
ORDER BY(1,2,3…) 语句
ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
在不知道列名的情况可以用序号来指代相应的列。
asc:正序输出;
desc:逆序输出;
select * from user order by id desc
但有一点,order by 后跟数字时无法使用运算符进行运算(位运算符也不行)
但是,当order by 后跟列名(字符串)时,不能使用普通的运算符,但可以使用位运算符
order by 也可以进行报错注入;
select * from user order by updatexml(1,concat(0x7e,database()),0);
当然,order by也可以进行时间的盲注;
select * from user order by if(1,sleep(2),0);
考虑到当知道列名时,可以使用按位运算符,则可以使用按位运算符来进行注入