任意文件读取与下载的原理及修复

 原文链接:https://cloud.tencent.com/developer/article/1597942

原理
没有对读取下载的文件做限制

漏洞利用方式
由于我们不知道敏感文件的路径,我们可以利用../../(返回上次目录)依次猜解,让漏洞利用变的猥琐。
例如

漏洞的危害: 通过任意文件下载,可以下载服务器的任意文件,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配置信息
C:\Windows\win.ini //Windows系统的一个基本系统配置文件

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 //apache配置文件
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql历史命令记录文件
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的cmdline参数
复制代码

 

修复方案
1.过滤../等敏感字符,使用户在url中不能回溯上级目录
2.文件下载时判断输入的路径,最好的方法是文件应该在数据库中进行一一对应,避免通过输入绝对路径来获取文件
3.php.ini配置open_basedir限定文件访问范围

posted @   yinghualeihenmei  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-08-17 input控件 输入框禁止复制粘贴剪切自动完成
2022-08-17 升级IE版本(功能极速模式下可以用,兼容模式下不能用)/常见的浏览器内核种类
点击右上角即可分享
微信分享提示