任意文件读取与下载
概述
任意文件读取与下载又名不安全的文件下载,一些网站的业务需要,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,就能够查看或下载任意的文件,可以是源文件,敏感文件等等通过任意文件下载,可以下载服务器的任意文件,web 业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,以及对内网的信息探测等等
代码分析
传入的文件名没有任何过滤,接着判断文件是否存在,存在设置文件头下载。循环读取文件下载

任意文件读取与下载攻击
通过文件下载,可以下载操作系统的敏感文件。如/etc/passwd 文件
192.168.0.103/06/vul/unsafedownload/execdownload.php?filename=../../../../../../../etc/passwd

读取网站配置文件获取数据配置信息

常见敏感文件
windows操作系统
C:boot.ini //查看系统版本
C:WindowsSystem32inetsrvMetaBase.xml //IIS 配置文件
C:Windowsrepairsam //存储系统初次安装的密码
C:Program Filesmysqlmy.ini //Mysql 配置
C:Program Filesmysqldatamysqluser.MYD //Mysql root
C:Windowsphp.ini //php 配置信息
C:Windowsmy.ini //Mysql 配置信息
Linux操作系统
/etc/passwd
/etc/shadow
/etc/hosts
/root/.bash_history //root 的 bash 历史记录
/root/.ssh/authorized_keys
/root/.mysql_history //mysql 的 bash 历史记录
/root/.wget-hsts
/opt/nginx/conf/nginx.conf //nginx 的配置文件
/var/www/html/index.html
/etc/my.cnf
/etc/httpd/conf/httpd.conf //httpd 的配置文件
/proc/self/fd/fd[0-9]*(文件标识符)
/proc/mounts
/porc/config.gz
/proc/sched_debug // 提供 cpu 上正在运行的进程信息,可以获得进程的 pid 号,可以配合后面需要 pid
的利用
/proc/mounts // 挂载的文件系统列表
/proc/net/arp //arp 表,可以获得内网其他机器的地址
/proc/net/route //路由表信息
/proc/net/tcp and /proc/net/udp // 活动连接的信息
/proc/net/fib_trie // 路由缓存
/proc/version // 内核版本
/proc/[PID]/cmdline // 可能包含有用的路径信息
/proc/[PID]/environ // 程序运行的环境变量信息,可以用来包含 getshell
/proc/[PID]/cwd // 当前进程的工作目录
/proc/[PID]/fd/[#] // 访 问 file descriptors , 某 写 情 况 可 以 读 取 到 进 程 正 在 使 用 的 文 件 , 比如access.log
ssh
/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
/root/.ssh/authorized_keys
/etc/ssh/sshd_config
/var/log/secure
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/syscomfig/network-scripts/ifcfg-eth1
任意文件读取与下载防御
过滤点(.)使用户在 url 中不能回溯上级目录
正则严格判断用户输入参数的格式
php.ini 配置 open_basedir 限定文件访问范围
更新: 2025-05-05 14:19:30
原文: https://www.yuque.com/yuhui.net/network/ago46neokwa3o8eu

评论(0)
暂无评论