文件下载漏洞&文件读取漏洞&文件删除漏洞

83 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

文件下载

文件下载漏洞呢

什么是文件下载漏洞

首先这个文件下载漏洞呢,其实是网站这个平台提供了下载文件的功能,那么网站平台上对于这个网站的下载没有限制过滤,那么一些不分分子就会利用他的这个缺点去下载一些敏感文件一些重要性文件

文件下载两种格式

直连下载【没有漏洞】
www.baidu.com/1.zip


解析性下载【可能存在漏洞】
www.baidu.com?file=1.zip

解释

直连下载:

                连接的是
         1.zip-------------www.baidu.com/1.zip
         
                连接的是
         2.zip-------------www.baidu.com/2.zip




解析下载:


                                             /1.zip
                                            /
                                           /
                     www.baidu.com?file=   ——————2.zip
                                           \
                                            \ 
                                             \3.zip

                     
                     www.baidu.com?file=    这就好比一个你要什么给什么的机器人
                     
                     我要1.zip
                     www.baidu.com?file=1.zip
                     我要2.zip
                     www.baidu.com?file=2.zip
                     我要3.zip
                     www.baidu.com?file=3.zip
                     
                     
                     你向他请求什么他就会帮你去找什么,就是这个意思
                     如果他没有1.zip 那么他就会返回空给你
                     

漏洞成因:

存在读取文件的函数

读取文件的路径用户可控且未校验或校验不严格

输出了文件内容

漏洞危害:

下载服务器任意文件,如脚本代码、服务及系统配置文件等,进一步利用获取的信息进行更大的危害。

可用得到的代码进一步代码审计,得到更多可利用漏洞

案例

http://67.202.70.133/files/readfile.php?file=../configurtion.php

http://67.202.70.133/

文件读取漏洞

文件读取函数

  1. fopen
  2. file_get_contents
  3. fread
  4. fgets
  5. fgetss
  6. file
  7. fpassthru
  8. parse_ini_file
  9. readfile
<?php
    $filename = $_GET['file'];
    if(isset($filename)) {
        readfile($filename);
    }

文件删除漏洞

<?php
    header("Content-Type:text/html;charset=utf-8");
    $filename = $_GET['file'];
    if(file_exists($filename)){
        unlink($filename);
        echo "<script>alert('删除成功')</script>";
    }else{
        echo "<script>alert('删除失败')</script>";
    }