搜索
查看: 813|回复: 0

十种MYSQL显错注入原理讲解(二)

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2017-1-18 17:10:55 | 显示全部楼层 |阅读模式
上一篇讲过,三种MYsql显错注入原理。下面我继续讲解。
1、geometrycollection()
  1. select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b));
复制代码
函数讲解:
  GeometryCollection是由1个或多个任意类几何对象构成的几何对象。GeometryCollection中的所有元素必须具有相同的空间参考系(即相同的坐标系)。对GeometryCollection的元素无任何限制,但下面介绍的GeometryCollection的子类会限制其成员。这类限制可能基于:
  元素类型(例如,MultiPoint可能仅包含Point元素)。
  维数。
  对元素间空间交迭程度的限制。
(以上函数解释摘自官方文档.)
说的这么官方,感觉上其实就是“画图工具”,两点一线,四点一面,八点一体.....个人理解感觉就这样的。
官方文档中举例的用法如下:
  1. GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))
复制代码
POINT(x,y) 函数,这玩意是坐标。举个栗子~就相当于X,Y坐标图上的一点。
LINESTRING(x y,x y)函数,这个函数用来描述直线,两点连成的直线。
原理解析:
咱们攻击载荷拆分,查询的为一串字符,然后用处理geometrycollection(),由于MYSQL无法用这样字符串画出图形,所以报错了。
  1. select user()
  2. select * from(...)a
  3. select * from(...)b
  4. select * from test where id=1 and geometrycollection((...));
复制代码
2、multipoint()
  1. select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));
复制代码
函数解释:
  MultiPoint是一种由Point元素构成的几何对象集合。这些点未以任何方式连接或排序。
MultiPoint示例
  在世界地图上,MultiPoint可以代表岛链。
  在城市地图上,MultiPoint可以表示售票处的出口。
MultiPoint属性
  MultiPoint是0维几何对象。
  如果没有两个Point是相同的(具有等同的坐标值),MultiPoint是简单的。
  MultiPoint的边界为空集合。
(以上的解释透露出浓浓官方的味道,它的确是官方的解释)
这个解释,我看的云里雾里,不管解释的多么全面以及抽象。MultiPoint()函数中肯定是需要数字的!
原理解析:
  由于需要数字,那好吧。GeometryCollection的套路拿来,OK!稳定报错。
3、polygon()
  1. select * from test where id=1 and polygon((select * from(select * from(select user())a)b));
复制代码
函数解释: 
  Polygon是代表多边几何对象的平面Surface。它由单个外部边界以及0或多个内部边界定义,其中,每个内部边界定义为Polygon中的1个孔。
Polygon示例
  在地区地图上,Polygon对象可表示森林、区等。
Polygon声明
  Polygon的边界由一组构成其外部边界和比内部边界的LinearRing归向集合构成(即,简单且封闭的LineString对象)。
  Polygon没有交叉的环。Polygon边界中的环可能会在Point处相交,但仅以切线方式相交。
  Polygon没有线、尖峰或穿孔。
  Polygon有由连接点集合构成的内部。
  Polygon可能包含孔。对于具有孔的Polygon,其外部不连接。每个孔定义了连接的外部部件。
前述声明使得Polygon成为简单的几何对象。
(不好意思,这块我得继续使用官方解释,)
原理解释:
  Polygon() 这货真不好解释,空间几何总是比较抽象的一种。将几何分成区域,并且连接和交叉(个人是这么理解的)。只要知道这函数也是需要数字,大概就可以报错了,这样的概念。

空间几何,非常的抽象,理解有难度的。附上官方文档。
http://www.mysqlab.net/docs/view/refman-5.1-zh/chapter/spatial-extensions-in-mysql.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表