美文网首页
DVWA笔记之File Inclusion

DVWA笔记之File Inclusion

作者: inspireboom | 来源:发表于2017-08-23 10:47 被阅读0次

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

    low服务器代码

    <php
    //Thepagewewishtodisplay
    $file=$_GET['page'];
    >
    

    思路:
    没做任何的过滤。
    直接http://.../dvwa/vulnerabilities/fi/?page=/etc/passwd

    medium服务器代码

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

    medium增加了过滤的:str_replace函数,对page参数进行了一定的处理,将”http:// ”、”https://”、 ” ../”、”..\”替换为空字符,即删除。
    str_replace函数 可以用双写绕过。
    例如
    http://可以用 hthttp://tp://绕过
    ../、..\可以用绝对路径也可以双写。

    high服务器代码

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

    High级别的代码使用了fnmatch函数检查page参数,要求page参数的开头必须是file,服务器才会去包含相应的文件。
    High级别的代码规定只能包含file开头的文件,看似安全,不幸的是我们依然可以利用file协议绕过防护策略。file协议其实我们并不陌生,当我们用浏览器打开一个本地文件时,用的就是file协议
    直接
    http://.../dvwa/vulnerabilities/fi/?page=file:///etc/passwd
    至于执行任意命令,需要配合文件上传漏洞利用。首先需要上传一个内容为php的文件,然后再利用file协议去包含上传文件(需要知道上传文件的绝对路径),从而实现任意命令执行。

    Impossible服务器代码

    <php
    //Thepagewewishtodisplay
    $file=$_GET['page'];
    
    //Onlyallowinclude.phporfile{1..3}.php
    if($file!="include.php"&&$file!="file1.php"&&$file!="file2.php"&&$file!="file3.php"){
    //Thisisn'tthepagewewant!
    echo"ERROR:Filenotfound!";
    exit;
    }
    
    >
    

    可以看到,Impossible级别的代码使用了白名单机制进行防护,简单粗暴,page参数必须为“include.php”、“file1.php”、“file2.php”、“file3.php”之一,彻底杜绝了文件包含漏洞。

    相关文章

      网友评论

          本文标题:DVWA笔记之File Inclusion

          本文链接:https://www.haomeiwen.com/subject/pcbarxtx.html