【Web安全攻防从入门到精通】任意文件下载漏洞

任意文件下载漏洞

概述

网站由于业务需求,提供文件查看或下载功能,如果对用户查看或下载的文件不做限制,恶意用户就能够查看或下载任意文件,任意文件类型包含源代码文件、敏感文件等。

利用条件

  • 存在读文件的函数
  • 读取文件的路径可控且未校验或校验不严
  • 输出了文件内容

常见敏感文件路径

Windows:
C:\boot.ini                                      //查看系统版本
C:\Windows\System32\inetsrv\MetaBase.xml         //IIS配置文件
C:\Windows\repair\sam                            //存储系统初次安装的密码
C:\Program Files\MySQL\my.ini                    //MySQL配置
C:\Program Files\MySQL\data\MySQL\user.MYD       //MySQL root
C:\Windows\php.ini                               //php配置信息
C:\Windows\my.ini                                //MySQL配置信息
...
Linux:
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts
/etc/passwd                                      //密码文件信息
/etc/shadow                                      //影子文件信息
/etc/my.cnf                                      //MySQL文件
/etc/httpd/conf/httpd.conf                       
/root/.bash_history                              //操作历史文件信息
/root/.MySQL_history                             //MySQL操作历史文件信息
/proc/self/fd/fd[0-9]*(文件标识符)
/proc/mounts
/proc/config.gz

修复方案

  1. 过滤../ ./ 等敏感字符,使用户在URL中不能回溯上级目录

Windows中可用..\来绕过

  1. 文件下载时判断输入的路径,最好的方法是文件应该在数据库中一一对应,避免通过输入绝对路径来获取文件
  2. php.ini配置open_basedir限定文件访问范围
posted @   灰心爷爷  阅读(386)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示