频道栏目
首页 > 安全 > 网站安全 > 正文

记解决在php注入中遇到的一个问题

2011-05-08 12:04:04           
收藏   我要投稿

ps:www.2cto.com是代替具体网址的,请勿误解

这个问题本来是好多天以前遇到的,不过这段时间一直很忙,基本上没有时间上网,所以就先放下了。现在好不容易有点时间,我就拿来总结一下。
  小菜第一次写东西,还得请大家多多批评指教~~~

  好了,下面开始正文。

来自:习科信息技术 - 黑客作战营
::{ Silic Group Hacker Army }::
Site:http://blackbap.org

  我们在进行注入的时候,大多数是不能如我们所愿,轻轻松松的成功注入的,经常会遇到这样或那样的问题。比如这个:
http://www.2cto.com/admin/show.php?id=228

你会发现,按照我们常规的判断注入的方式,也就是加一个单引号,返回的确实的错误的页面,回显如下:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 228 at line 1

那么我们再用and 1=1  和and1=2来看一下
https://www.2cto.com/admin/show.php?id=228+and+1=1
返回正确的页面,这是个不错的现象。
http://www.2cto.com/admin/show.php?id=228+and+1=2
这也返回了正确的页面,这就让我理解不了了。。。
那现在怎么办呢?我们现在还是看看刚才加单引号出错的页面,看看回显说了什么。

near 228

ok,去掉near后面的一对引号,那么这个SQL语句的后面的部分就是:228
对!多了一个单引号!这个单引号就是我们刚才加上去的那个了。 
  现在我们至少明确了一个问题:我们输入的单引号已经被带到SQL语句里面去执行了,也就说,这确实是一个注入。那么我们现在可以来想办法构造注入语句了。
 
  注入语句怎么来构造呢?我们来看一下,正常的SQL语句中,后面的内容是:[228],当我们在url的后面加上[and 1=2]的时候,程序把[and 1=2]这部分是当错参数带进SQL语句里的,这时候的SQL语句的后面的部分是[228 and 1=2],而不是我们想要的[228 and 1=2]。那么我们是不是就没有办法了呢,显然不是。只要我们在url的id=228后面先加上一个单引号,然后再输入其他的内容不就可以了嘛~如果我们在url中这样构造:[……id=228+我们的注入语句],这样的话SQL语句的后面部分就变成了[228+我们的注入语句],至于后面剩下的那个单引号就更好办了,直接用/*注释掉就可以了。这样的话我们的注入语句不是就可以顺利的执行啦嘛~
  好了,根据上面的分析,我们构造出了下面的url:
http://www.2cto.com/admin/show.php?id=228+and+1=2/*

  在浏览器中访问,终于看到了我们期盼已久的出错页面。现在我们就成功了一大半!
  实际上,我们完全可以把后面的那个单引号利用起来而不用注释掉:
http://www.2cto.com/admin/show.php?id=228+and+1=2

  那么我们现在构造起注入语句来就简单多了。现在用来构造一个联合查询语句来看看。
http://www.2cto.com/admin/show.php?id=228+union+select+1,2,3,4/*

看看回显说了什么:

The used SELECT statements have a different number of columns

字段数错误。这就说明我们的联合查询语句已经顺利的执行了!接下来的事情就是猜字段表段什么的了,就不细说了。要注意的是,猜到字段数再去查询表段的时候,要让前面出错来找显示位,但是现在我们省去了and 1=2,是不是没有办法了呢?当然不是,我们可以把参数改成负数来导致前面出错然后去执行后面的部分,这样就可以找到显示位了:
https://www.2cto.com/admin/show.php?id=228+union+select+1,2,3,4,5,6,7,8,9,10/*
http://www.2cto.com/admin/show.php?id=-1+union+select+1,2,3,4,5,6,7,8,9,10/*

相关TAG标签 问题
上一篇:web.config本地加密解密BAT
下一篇:基于ACCESS数据库的SQL注入攻击的解决方案
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站