最近又深刻的研究了一下mysql的报错注入,发现很多值得记录的东西,于是写了这篇博客做一个总结,目的是为了更深刻的理解报错注入
报错注入原因及分类
既然是研究报错注入,那我们先要弄明白为什么我们的注入语句会导致数据库报错...,这个方法从lctf2017 pcat大佬的writeup中学到的,在我的另一篇文章中会提到
基于数据类型不一致而产生的报错:mysql的一些函数参数要求的是什么数据类型,如果数据类型不符合,自然就会报错...,这种报错也是相对容易理解的,根据这种特性产生的报错注入有updatexml,extractvalue等注入手法
基于BIGINT溢出错误的SQL注入,根据超出最大整数溢出产生的错误,这类报错注入是在mysql5.5.5...版本后才产生的,5.5.5版本前并不会因为整数溢出而报错,这种注入自己在phpstudy上试了试,mysql版本为5.5.53,虽然报错了但是并没有爆出信息,以后研究出来再补充
其他报错,企业级代码审计这本书上看到的...0)*2):我们在进行报错注入时用的相对较多的方法,网上给出的报错语句大部分是这样的
id=1 and (select 1 from (select count(*),concat(user(),floor