DVWA学习记录系列(五)File Include 文件包含漏洞模块

提示:本文主要针对于File Include 文件包含漏洞全等级的分析以及相应的破解。


前言

      本次主要针对于DVWA当中的 文件包含漏洞进行学习。主要进行的是dvwa的low、medium、high级别进行破解,由于impossible模块难度过高所以都将不进行impossible的实验。


一、File Include是什么?

      File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。

文件包含漏洞常配合文件上传来获取目标webshell。本文主要基于文件包含的基础来进行讲解,暂不涉及文件上传。

二、实验步骤

1.low级别

      1)代码分析:
在这里插入图片描述
      由上图可知,该代码会直接获取page中的参数,作为PHP文件进行执行。无任何防御的措施。
      2)因此,可直接利用URL进行漏洞的利用。

注:需要确保本机的phpstudy开启了allow_url_include以及allow_url_fopen两个选项,否则无法完成实验。在php扩展及设置中可以找到下图所示的内容。

在这里插入图片描述 进行本地的文件包含漏洞:
(直接在page=后面加上本地文件路径即可)
在这里插入图片描述进行远程的文件包含漏洞利用:
(我在kali中开启了apache服务,使得我可以对其进行远程登陆访问)
注:构建的远程URL中最后的文件部分,不论其后缀名是啥,都将执行为php文件,如文件中无php内容则会直接显示文件里的所有内容。
在这里插入图片描述
在这里插入图片描述

2.Medium级别

1)代码分析:

在这里插入图片描述       如上图所示:在本级别中,使用了str_replace函数进行替换。

将http://  https://   ..//    ..\  全部都替换成了空字符。

      当然要知道使用str_replace是及其不安全的,因为其只能进行一次替换。因此我们可以使用双写进行替换。

替换如下(示例):

      例如:hthttp://tp://…
      此处由于,str_replace函数会过滤掉http://因此在我们把上述的URL中带有http://的去掉可得:http://…,至此便可成功绕过。

在这里插入图片描述       对于本地文件包含的利用也可同样运用双写进行绕过。

3.high级别

1)代码分析:
在这里插入图片描述      与medium一样也拥有输入验证,但本级别使用的是fnmatch,利用此匹配page=后的内容,以确保其后的内容是以file开头或include.php开头的。

      虽然是以file开头的文件,看似很安全,但我们仍然可以利用file协议绕过其防御策略。
例如:

~page=file://d:\\phpstudy\phptutorial\www\xxx
进行查看其对应的文件。

在这里插入图片描述

      至于代码执行,需配合文件上传漏洞进行利用。首先上传一个php文件,而后利用file文件去包含上传的文件(必须知道上传文件的绝对路径),从而实现任意恶意代码执行。

      可把含有php代码的文件格式改成jpg发现一样可以用。

#php的测试代码代码:
<?php
phpinfo();
?>

在这里插入图片描述

4.imposs级别

代码分析:

在这里插入图片描述      由此可知直接对利用的文件进行了设置,设置了白名单。


总结

防御:可参照impossible级别设置对应的白名单;且不能因为格式就不对上传后的文件进行上传,如high中的.jpg文件依旧可以执行php代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值