任意文件读取漏洞及危害

通过提交专门设计的输入,攻击者就可以在被访问的文件系统中读取或写入任意内容,往往能够使攻击者从服务器上获取敏感信息文件,正常读取的文件没有经过校验或者不严格,用户可以控制这个变量读取任意文件。

任意文件读取漏洞,是web安全里高危的漏洞,它可以泄露源码、数据库配置文件等等,导致网站处于极度不安全状态。

文件读取常见的函数

  1. fopen
  2. file_get_contents
  3. fread
  4. fgets
  5. fgetss
  6. file
  7. fpassthru
  8. parse_ini_file
  9. readfile

注意: allow_url_fopen选项激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象例如文件。默认的封装协议提供用ftp 和 http 协议来访问远程文件,一些扩展库例如 zlib 可能会注册更多的封装协议

代码展示

<?php$filename = $_GET['file'];if(isset($filename)) {readfile($filename);}

这里使用了常见的readfile函数直接读取传入变量对应的文件内容,在本地文件夹下新建了1.txt和config文件夹下的2.txt用于测试

查看本地文件配置的敏感信息./config/admin.php

另一种读取文件的方法,这里使用的是打开文件和读取文件的方式,然后输出文件的内容

demon03.php

<?php$filename = $_GET['file'];if(isset($filename)) {
//        readfile($filename);$fp = fopen($filename,"r") or die("不能读取文件");$data = fread($fp,filesize($filename));fclose($fp);echo $data;}

效果一样

任意文件删除漏洞

攻击者从寻找上删除的功能,正常删除功能的文件没有经过校验或者不严格,攻击者控制这个可操作的变量配合目录遍历进行删除其他文件。这里涉及到一个unlink()函数,这个函数的作用是删除对应的文件及文件内容。

demon04.php

<?phpheader("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>";}

  • 执行查询后,文件被删除成功了

    修复方案

    1. 正则严格判断用户输入参数的格式
    2. 检查使用者输入的文件名是否有“…”的目录阶层字符
    3. 在php.ini文件中设置open_basedir来限定文件访问的范围

任意文件读取及删除漏洞相关推荐

  1. 任意文件读取与下载漏洞学习

    原理: 任意文件读取漏洞属于文件操作类漏洞,一般常见于PHP/java/python语言中.任意文件读取漏洞,就是可以任意读取服务器上部分或者全部文件的漏洞,攻击者利用此漏洞可以读取服务器敏感文件如/ ...

  2. windows文件读取 xxe_XXE任意文件读取(当xml解析内容有输出时)

    利用XXE漏洞读取文件 参考:https://www.jianshu.com/p/4fc721398e97 首先找到登录源码如下: 由题目可以利用XXE漏洞读取文件 先登录用Burp Suite抓包: ...

  3. 读取txt原理_Mysql客户端任意文件读取学习

    前言 最近打了 DDCTF和 国赛,发现都考了一个知识点,也就是 MysqlLocalInfile客户端文件读取这个漏洞,下面来详细的学习一个这个漏洞. 漏洞形成原因 此漏洞形成的主要原因在于 LOA ...

  4. CVE-2020-25540:ThinkAdmin未授权列目录/任意文件读取漏洞复现

    目录 1. 简介 2. 影响范围 3. 环境搭建 3.1 安装Composer 4. 漏洞复现 4.1 列举目录 4.2 任意文件读取 1. 简介 ThinkAdmin 是基于 ThinkPHP后台开 ...

  5. Windows任意文件读取漏洞

    低权限用户或恶意程序能够读取目标Windows计算机上任何文件的内容,设想你取得了一个普通权限,还能干吗,用该漏洞作者SandboxEscaper的一句话来说,也许是密码文件,我不够聪明,不知道能干吗 ...

  6. CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析

    title: CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析 date: 2021-05-19 01:07:08 categ ...

  7. 目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞

    目录 目录浏览(目录遍历)漏洞 任意文件读取/下载漏洞 目录浏览(目录遍历)漏洞 目录浏览漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件 ...

  8. php 打开任意文件下载,TEC-004-php文件下载任意文件读取漏洞修复

    修改download?u参数值,将/public/files/14842030529.txt,替换为../../../../../../../../../../etc/passwd function ...

  9. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

最新文章

  1. RobotFramework下的http接口自动化Set Request Body 关键字的使用
  2. 十年架构师详解,Spring-IoC容器装配Bean
  3. 【android-tips】关于android应用R文件无法读取
  4. protobuf版本冲突
  5. 将Reporting Service 2005 SP2集成部署到WSS3或MOSS2007服务器场心得
  6. 13个不可不知的ASP.NET MVC扩展点
  7. lnmp + swoole 安装
  8. 磁带非但没被淘汰,容量还比硬盘大了???
  9. wampserver显示红色、橙色的解决方案
  10. 关于cidaemon.exe进程CPU占用率高的解决
  11. python3 scipy._lib.six
  12. android(小米)系统隐藏的小功能
  13. P2757 [国家集训队]等差子序列
  14. 设计模式与软件体系结构复习资料——设计模式
  15. 为什么很多电销公司喜欢用大数据获得资源?
  16. 【Windows】怎么查看CUDA版本?Conda命令安装和NVIDIA官网安装包安装的CUDA有何区别?nvcc -V和nvidia-smi获得的CUDA版本有何区别?如何指定CUDA版本?
  17. vue实现Excel文件导入导出
  18. GLUT, freeGLUT, GLFW, GLEW, GLAD 关系与区别
  19. 电视剧中的程序员,是真的敲代码吗?
  20. Kali Linux渗透测试之端口扫描(一)——UDP、TCP、隐蔽端口扫描、全连接端口扫描

热门文章

  1. php生成网页按钮,JavaScript实现自动生成网页元素功能(按钮、文本等)_javascript技巧...
  2. my CSAPP Attack lab堆栈详解
  3. Java数组(3)--二维(多维)数组
  4. 服务器硬盘 主板,服务器主板和普通主板有什么区别?
  5. xss 全编码两次_XSS进阶
  6. 丙烯怎么做成流体丙烯_韧性好强度高的聚丙烯复合材料怎么做?让人工智能来帮忙...
  7. python基础_格式化输出(%用法和format用法)
  8. Go--4大基本数据类型之布尔类型
  9. 剑指offer-3(替换空格)
  10. 制造业物料清单BOM、智能文档阅读、科学文献影响因子、Celebrated Italian mathematician ZepartzatT Gozinto 与 高津托图...