码迷,mamicode.com
首页 > 其他好文 > 详细

基于报错型的注入

时间:2017-07-19 14:04:19      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:user   报错   循环   XML   sch   参考   http   group by   log   

 

一、floor() 、rand()、和 group by 组合:

select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x

技术分享

通过floor报错的方法来爆数据的本质是group by语句的报错。group by语句报错的原因是floor(random(0)*2)的不确定性,即可能为0也可能为1(group by key的原理是循环读取数据的每一行,将结果保存于临时表中。读取每一行的key时,如果key存在于临时表中,则不在临时表中则更新临时表中的数据;如果该key不存在于临时表中,则在临时表中插入key所在行的数据。group by floor(random(0)*2)出错的原因是key是个随机数,检测临时表中key是否存在时计算了一下floor(random(0)*2)可能为0,如果此时临时表只有key为1的行不存在key为0的行,那么数据库要将该条记录插入临时表,由于是随机数,插时又要计算一下随机值,此时floor(random(0)*2)结果可能为1,就会导致插入时冲突而报错。即检测时和插入时两次计算了随机数的值

参考:http://www.jinglingshu.org/?p=4507

 

二、updatexml() 、extractvalue():

SELECT * FROM `aaa` where id = 1 and extractvalue(e,concat(1,(SELECT user())));

技术分享

SELECT * FROM `aaa` where id = 1 and updatexml(e,concat(1,(SELECT user())),1);

技术分享

 

基于报错型的注入

标签:user   报错   循环   XML   sch   参考   http   group by   log   

原文地址:http://www.cnblogs.com/natian-ws/p/7204806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!