zoukankan      html  css  js  c++  java
  • DVWA之 File Inclusion 文件包含

    File Inclusion

    File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。

    文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。

    LOW级别:
    源码:

    vulnerabilities/fi/source/low.php
    <?php
    
    // The page we wish to display
    $file = $_GET[ 'page' ];
    
    ?>

    可以发现,服务器对page参数没有任何的过滤和检查。服务器希望用户点击图中的三个链接,服务器会包含相应文件,并将结果返回。需要说明的是。不管文件后缀是否是php,都会当做php文件执行,如果文件内容确认为php,则正常执行并返回结果,如果不是,则返回打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令执行。

    漏洞利用一:

    构造url(绝对路径):http://192.168.50.100/dvwa/vulnerabilities/fi/?page=C:phpStudyWWWdvwaphp.ini

     

     这样,就成功读取了服务器的文件。同时也可以再page后加相对路径,道理相同。

    Medium:

    代码:

    //Thepagewewishtodisplay
    $file=$_GET['page'];
    
    //Inputvalidation
    $file=str_replace(array("http://","https://"),"",$file);
    $file=str_replace(array("../","..""),"",$file);

    可以看到,Medium级别的代码增加了str_replace函数,对page参数进行了一定的处理,

    将”http:// ”、”https://”、 ” ../”、”..”替换为空字符,即删除。

    漏洞利用:可以通过双写绕过WAF。同时过滤的比较少,采用绝对路径的办法不受影响。

    http://192.168.50.100/dvwa/vulnerabilities/fi/?page=C:phpStudyWWWdvwaphp.ini

    HIGH

    代码:

    复制代码
    //Thepagewewishtodisplay
    $file=$_GET['page'];
    
    //Inputvalidation
    if(!fnmatch("file*",$file)&&$file!="include.php"){
       //Thisisn'tthepagewewant!
    echo"ERROR:Filenotfound!";
    exit;
    }
    复制代码

    可以看到,High级别的代码使用了fnmatch函数检查page参数,要求page参数的开头必须是file,服务器才会去包含相应的文件。

    看似安全,其实可以利用file协议绕过防护策略。file协议其实我们并不陌生,当我们用浏览器打开一个本地文件时,用的就是file协议。

    构造url:http://192.168.50.100/dvwa/vulnerabilities/fi/?page=file:///C:phpStudyWWWdvwaphp.ini

                              

  • 相关阅读:
    关于jQuery中click&live&on中的坑
    redis 主从配置和集群配置
    python 搭建redis集群
    事件冒泡及事件委托的理解(JQuery Dom操作)
    python中import和from-import的区别
    python中赋值-浅拷贝-深拷贝之间的关系
    学生管理系统.JavaScript
    学生管理系统.c
    电梯演讲与原型展示
    软件需求分析
  • 原文地址:https://www.cnblogs.com/xingyuner/p/12285861.html
Copyright © 2011-2022 走看看