目录
报错注入
文章内容篇幅较长,请认真研读
回顾之前的文章(sql注入基础),了解到sql注入的分类有
基于正常回显
联合查询 union select
基于错误回显
floor()
extractvalue()
updatexml()
盲注
布尔型盲注
基于时间盲注sleep()
报错注入的前提
页面上没有显示位,但是需要输出SQL语句执行错误信息。比如mysql_error()
优点: 不需要显示位
缺点: 需要输出mysql_error()的报错信息
构造报错注入的步骤
1、构造目标数据查询语句
2、选择报错注入函数
3、构造报错注入语句
4、拼接报错注入语句
floor函数报错注入
利用union select 1,count(*) from information_schema.tables group by concat(0x7e,database(),0x7e,floor(rand(0)*2))导致数据库报错,通过concat函数连接注入语句与floor(rand(0)*2)函数,实现将注入结果与报错信息回显的注入方式。
rand()可以产生一个在0和1之间的随机数,直接使用rand函数每次产生的数值不一样,但当我们提供了一个固定的数字0之后,每次产生的值都是相同的。