SQL注入 - 利用报错函数 floor 带回回显
一、原理
利用COUNT()
, FLOOR()
, RAND()
, 和 GROUP BY
来生成主键重复错误
函数解释
-
count()
: 这个函数用于计算满足某一条件下的行数,是SQL中的一个聚合函数,常用于统计查询结果中的记录数。 -
floor()
: 向下取整函数,可以将其参数值向下舍入到最接近的整数。 -
rand()
: 生成一个0到1之间的随机浮点数。每次调用时,都会产生一个新的随机数。 -
group by
: 用于结合聚合函数,按照一个或多个列对结果集进行分组。在使用group by
时,select
语句中只能包含聚合函数或在group by
子句中声明的列。
二、注入示例
以靶场的第五关做演示:http://127.0.0.1/sqlilabs/less-5/?id=1
爆库
?id=1' and (select 1 from (select count(*),concat(0x23,(database()),0x23,floor(rand(0)*2)) as x from information_schema.`columns`