zoukankan      html  css  js  c++  java
  • DVWA-4.3 File Inclusion(文件包含)-High-利用file协议绕过防护策略

    High Level

    查看源码

    <?php
    
    // The page we wish to display
    $file = $_GET[ 'page' ];
    
    // Input validation
    if( !fnmatch( "file*", $file ) && $file != "include.php" ) {
        // This isn't the page we want!
        echo "ERROR: File not found!";
        exit;
    }
    
    ?>

    fnmatch() 函数根据指定的模式来匹配文件名或字符串。

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

    漏洞利用

    High级别的代码规定只能包含file开头的文件,看似安全,不幸的是我们依然可以利用file协议绕过防护策略file协议其实我们并不陌生,当我们用浏览器打开一个本地文件时,用的就是file协议,如下图。

    构造url

    http://172.16.134.26/dvwa/vulnerabilities/fi/?page=file:///D:/software/wamp/www/dvwa/php.ini

    成功读取了服务器的配置文件

    至于执行任意命令,需要配合文件上传漏洞利用。首先需要上传一个内容为php的文件,然后再利用file协议去包含上传文件(需要知道上传文件的绝对路径),从而实现任意命令执行。

    参考:https://www.freebuf.com/articles/web/119150.html

  • 相关阅读:
    让keep-alive不缓存
    vue tab echart始终显示100px解决办法
    加载图片失败显示默认图片
    element 文件上传传参数
    vue-cli axios 拦截器设置
    制作字体图标制作
    20道Java面试必考题
    Integer源码解析
    阿里P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程
    代理详解
  • 原文地址:https://www.cnblogs.com/zhengna/p/12748315.html
Copyright © 2011-2022 走看看