报错注入
报错注入是SQL注入的一种。
利用前提:页面上没有显示位,但是需要输出SQL语句执行错误信息。比如mysql_error()
优点:不需要显示位
缺点:需要输出mysql_error()的报错信息
报错函数
1、floor报错注入
floor()报错注入是利用count()、rand()、floor()、group by 这几个特定的函数结合在一起产生的注入漏洞,准确的说是floor,count,group by冲突报错。
报错原理:利用数据库表主键不能重复的原理,使用GROUP BY分组,产生主键冗余,导致报错。
Rand()函数作用如下:
返回[0,1)之间的随机数,用法就是SELECT rand();
Floor()函数作用如下:
向下取整,用法即SELECT floor(11.332423),结果为11;
简单组合下,可以有SELECT floor(rand()*2);
会发现,产生的是0或1。
加大难度,可以有 SELECT CONCAT((SELECT database()),FLOOR(RAND()*2)), 结果就是security0或security1,这里假设数据库名为security
如果再加上from 表名,