本地文件包含和远程包含

什么是文件包含?
在文件包含里面,我们要想方设法把真正包含的文件掉包,换成恶意文件,服务器却不知道。
文件包含:是一种代码处理方式,当一个代码文件想要引用另外一个代码文件,就要用到包含,常见的包含函数有include、require等,参数是文件名。但是如果文件包含的参数用户可控且过滤不严,被攻击者偷梁换柱。
Include()
Include_once()
Require()
Require_once()
LOW等级:
首先进行正常的操作:点击fil1和file2时,仅仅是配置参数的变化,而其他并没有变化,这个参数便是可以利用的。
在这里插入图片描述首先进行尝试,将这个参数随便改成test.php,显示找不到文件,证明这个参数是可以利用的。如图可以看到错误信息,同时爆出来web的绝对路径。
在这里插入图片描述
在这里插入图片描述进一步思考,如果我们要包含根目录里面的php.ini文件,就要跳转到上两级目录,如下图所示
在这里插入图片描述查看是否打开可利用选项
在这里插入图片描述
allow_url_fopen = On
是否允许将URL(如http://或ftp://)作为文件处理。
allow_url_include = Off
是否允许include/require打开URL(如http://或ftp://)作为文件处理。
注意:
从PHP5.2开始allow_url_include就默认为Off了,而allow_url_fopen一直是On的。
接下来思考如何进行攻击:
1、本地文件执行:
尝试读取DVWA跟目录下面的phpinfo.php文件,如图所示,表明了文件包含不仅仅能读取文件,换能够执行文件。
在这里插入图片描述上传一个好的文件本地包含查看
在这里插入图片描述
正常显示
在这里插入图片描述包含显示
在这里插入图片描述2、远程文件执行:
在DVWA跟目录下面放一个phpinfo.txt文件,然后进行远程包含:如下图所示,说明是可以远程包含php文件的,而且非php的文件,只要里面包含了php格式的代码都可以正常执行。经过进一步尝试远程的phpinfo.php文件也可以执行,但两者的区别是.txt显示的是DVWA的域名,而.php文件显示的是本地127.0.0.1。我们要清楚远程的执行不是在攻击者的web服务器上执行,而是在受害者web服务器上执行命令,所以phpinfo.txt才是正经。
攻击思路:a现在要攻击b,攻击者首先在a上传有webshell代码的文本文件,得到URL,找到b的文件包含漏洞,就成功地执行了webshell,获得了b的web权限。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值