一、报错注入的定义
报错注入就是利用了数据库的某些机制,人为地制造错误条件,使得查询结果能够出现在错误信息中。
二、利用报错注入的前提
1.页面上没有显示位,但是必须有SQL语句执行错误的信息。
三、报错注入的优缺点
1.优点:不需要显示位,如果有显示位建议使用union联合查询。
2.缺点:需要有SQL语句的报错信息。
四、构造报错注入的基本步骤
- 构造目标查询语句;
- 选择报错注入函数;
- 构造报错注入语句;
- 拼接报错注入语句;
五、常见的报错注入函数
- floor();
- extractvalue();
- updatexml();
- geometrycollection();
- multipoint();
- polygon();
- multipolygon();
- linestring();
- multilinestring();
- exp();
六、报错注入演示(只演示前三个)
1.利用floor()函数进行报错注入
主要报错原因为:count()+rand()+group_by()导致主键重复。
因为floor(rand(0)*2)的重复性,导致group by语句出错。group by key的原理是循环读取数据的每一行,将结果保存于临时表中。读取每一行