【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
修复方案
- 过滤
../ ./
等敏感字符,使用户在URL中不能回溯上级目录
Windows中可用..\
来绕过
- 文件下载时判断输入的路径,最好的方法是文件应该在数据库中一一对应,避免通过输入绝对路径来获取文件
- php.ini配置open_basedir限定文件访问范围
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix