渗透测试_任意文件读取与下载漏洞

发布时间 2023-04-18 22:04:47作者: KAKSKY

任意文件读取与下载漏洞

任意文件读取与下载又名不安全的文件下载,一些网站的业务需要,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,就能够查看或下载任意的文件,可以是源文件,敏感文件等等。

通过任意文件下载,可以下载服务器的任意文件,web 业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,以及对内网的信息探测等等

利用方式

通过文件下载,可以下载操作系统的敏感文件。如/etc/passwd 文件

192.168.0.103/06/vul/unsafedownload/execdownload.php?filename=../../../../../../../etc/passwd

常见的敏感文件
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 系统常用系数

/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

防御方式

1.过滤点(.)使用户在 url 中不能回溯上级目录
2.正则严格判断用户输入参数的格式
3.php.ini 配置 open_basedir 限定文件访问范围