当前位置: 首页 > news >正文

任意文件读取和下载

任意文件读取是什么?

一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕就可以查看或下载任意文件。这些文件可以是源代码文件配置文件敏感文件等等。过,

  • 任意文件读取会造成(敏感)信息泄露;
  • 任意文件读取大概率是由于其他漏洞引发的,如,RCE、目录遍历、文件包含等.
  • 任意文件读取与任意文件下载本质上没有区别,信息都是从服务端流向浏览器的。
  • 任意文件读取与下载可能形式不同,但是从本质上讲读取与下载没有区别,从权限角度来讲,读取与下载都需要读权限。

任意文件读取是因为用户对下载的文件没有做限制或配置有缺陷而造成的漏洞,攻击者通过该漏洞可以窃取源代码、日志文件等重要文件的敏感信息。

为什么会出现任意文件读取?

不管是任意文件读取还是任意文件下载,触发漏洞的条件都是相同的:

  • 存在读取文件的功能 (函数),也就是说,Web 应用开放了文件读取功能
  • 读取文件的路径客户端可控,完全控制或影响文件路径参数;
  • 没有对文件路径进行校验或者校验不严导致校验被绕过,
  • 输出了文件的内容

如果出现了任意文件读取漏洞,上面四个条件缺一不可。

文件读取漏洞也与系统的权限有关,下面是系统和软件的权限区别:

Windows + IIS + ASP/ASPX,一般是低权限

Windows + Apache + php,一般是高权限

Windows + Java,一般是高权限

Linux + Apache + PHP,一般是低权限

Linux + Nginx + PHP,不一定

Linux + Java,一般是高权限

它有什么危害?

任意文件读取可能会对造成下面信息的泄露:

  • 源代码
  • 配置文件
  • 敏感文件
  • 日志文件

文件读取怎么防御?

  • 限定文件的访问范围,php.ini 配置open_basedir限定文件访问范围(设置白名单)
  • 过滤关键字符
  • 避免其他漏洞引起该漏洞

如下面的代码,设置一个只能访问a、b、c文件的白名单:

<?php
// $fp=/test .php"
$fp = @$_GET['file_path'];
if($fp == "a.php" or == "b.php" or $fp == "c.php"){readflie($fp);
}
else{echo "Please stop!";
}
echo $fp;
?>

php.ini 配置,只能读取下面代码中指定的C盘目录:

ini set("open basedir"
c:/phpstudy_2016/www/");
http://www.lryc.cn/news/149657.html

相关文章:

  • mysql怎么查指定表的自增id?
  • 【C++设计模式】单一职责原则
  • Windows docker desktop 基于HyperV的镜像文件迁移到D盘
  • LM-INFINITE: SIMPLE ON-THE-FLY LENGTH GENERALIZATION FOR LARGE LANGUAGE MODELS
  • ShardingSphere——压测实战
  • 二分图-染色法-dfs
  • SQL优化案例教程0基础(小白必看)
  • webpack(一)模块化
  • 基于Java+SpringBoot+Vue前后端分离人力资源管理系统设计和实现
  • 安装配置mariadb
  • Ant Design Vue 日期选择器DatePicker传给后台日期参数格式问题
  • springboot1.5.12升级至2.6.15
  • Android Event事件分发(新版本)
  • 可控生成:ControlNet原理
  • 【极客时间】MySQL 必知必会-20230901
  • 53 个 CSS 特效 3(完)
  • 简单数学题:找出最大的可达成数字
  • [C++ 网络协议] 套接字的多种可选项
  • 2022年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • ***数据转换中常用的两个函数 sscanf,sprintf
  • 软件工程(十九) 软件测试
  • go中读写锁(rwmutex)源码解读实现原理
  • 【人工智能】—_深度优先搜索、代价一致搜索、深度有限搜索、迭代深度优先搜索、图搜索
  • uni-app 客服按钮可上下拖动动
  • 基于Android的旅游管理系统 微信小程序
  • python-数据可视化-下载数据-CSV文件格式
  • 时序预测 | MATLAB实现SSA-XGBoost(麻雀算法优化极限梯度提升树)时间序列预测
  • leetcode 823 带因子的二叉树
  • 钉钉消息已读、未读咋实现的嘞?
  • Java 读取TIFF JPEG GIF PNG PDF