zoukankan      html  css  js  c++  java
  • 7、任意文件读取与下载

    7 任意文件读取与下载

    7.1 概念

          对用户查看或下载的文件不做限制,就能够查看或下载任意的文件,可能是源代码文件、敏感文件等。

    7.2 产生原因与危害

    产生原因

          ·存读取文件的函数

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

          ·输出了文件内容

    漏洞危害

          ·下载服务器任意文件。包含脚本代码、系统敏感文件;

    ·可配合其他类型漏洞进一步攻击

    ·进一步代码审计,查找更多可利用代码

    任意文件读取

    <?php            

    $filename=”test.txt”;

    readfile($filename);

    ?>

    <?php

    $filename=”test.txt”;

    Echo fiile_get_contents($filename);

    ?>

    文件读取函数:readfile()、file_get_contents()、fopen()中,$filename没有经过校验或者校验不合格,用户可控制变量读取任意文件,如/etc/passwd、./index.php。

    文件下载方式

          ·直接下载

          ·<a href=”http://www.a.com/ccc.rar”>下载</a>

    在上述代码中,$filename 没有经过校验,或者校验不合格,用户可以控制这个变量读取

    任意的文件,比如/etc/passwd、../index.php等等。这样就造成了任意文件下载漏洞

    7.3 挖掘与验证

    漏洞挖掘

          1.web漏洞扫描器(awvs、appscan、openvas、nessus)

          2.手动挖掘从连接和参数名查看

    连接:readfile.php?file=**.txt、download.php?file=**.rar

    参数名:&readpath=、&filepath=、&path=、&inputfile=、&url=、&data=、&readfile=、&menu=、META-INF= 、WEB-INF

    漏洞验证

          • Index.php?f=../../../../../../../../etc/passwd

    • Index.php?f=../index.php

    • Index.php?f=file:///etc/passwd

    参数f的参数值为PHP文件时:

          1.文件被解析,则是文件包含漏洞

          2.显示源代码,则是文件查看漏洞

          3.提示下载,则是文件下载漏洞

    7.4 漏洞修复方案

    • 过滤 . 点,使用户在url中不能回溯上级目录

    • 正则严格判断用户输入的参数

    • Php.ini配置open_basedir限定文件访问范围

  • 相关阅读:
    OpenShift和F5的集成手册
    OpenShift负载分区策略(Router Shading)
    Istio在Openshift 3.11的安装
    Openshift 和Harbor的集成
    OpenShift 如何获取bearer Token以便进行各种API调用
    Openshift 3.11和LDAP的集成
    Openshift 节点添加和删除
    Spring Dataflow批处理框架在OCP上的部署
    Openshift 用户,角色和RBAC
    取消Windows server 关机提示备注的方法
  • 原文地址:https://www.cnblogs.com/guike/p/11188529.html
Copyright © 2011-2022 走看看