任意文件下载漏洞知识点
Posted 水中煮鱼冒气
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了任意文件下载漏洞知识点相关的知识,希望对你有一定的参考价值。
资料下载
点击 下载
https://download.csdn.net/download/qq_41901122/18467497
任意文件下载
漏洞描述
文件下载处由于未对下载路径进行过滤,利用路径回溯符…/跳出程序本身的限制目录实现来下载任意文件,如下载系统密码文件等!
利用条件
- 存在读文件的函数
- 读取文件的路径用户可控且未校验或校验不严
- 输出了文件内容
漏洞危害
- 可以下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,以及对内网的信息探测等等。
- 可用得到的代码进一步代码审计,得到更多可利用漏洞
- 任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。
漏洞发现
- 网站URL中存在下载参数,并且未进行过滤…/…/…/字符,且输出了文件内容
链接上
download.php?path=
download.php?file=
down.php?file=
data.php?file=
readfile.php?file=
read.php?filename=
参数上
&RealPath=
&FilePath=
&filepath=
&Filepath=
&Path=
&path=
&inputFile=
&Inputfile=
&url=
&urls=
&Lang=
&dis=
&data=
&Data=
&readfile=
&filep=
&src=
&menu=
META-INF
WEB-INF
案例
- 任意文件下载漏洞,正常的利用手段是下载服务器文件,如脚本代码,服务器配置或者是系统配置等等。
- 但是有的时候我们可能根本不知道网站所处的环境,以及网站的路径,这时候我们只能利用./ …/来逐层猜测路径,让漏洞利用变得繁琐
- 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(如…/…/…/etc/passwd),则很有可能会直接将该指定的文件下载下来。从而导致后台敏感信息(密码文件、源代码等)被下载。
index.php?f=../../../../../../etc/passwd
index.php?f=../index.php
index.php?f=file:///etc/passwd
readfile.php?file=/etc/passwd
readfile.php?file=../../../../../../../../etc/passwd
readfile.php?file=../../../../../../../../etc/passwd%00(00截断)
注:
- 当参数f的参数值为php文件时,若是文件被解析则是文件包含漏洞
- 显示源代码,则是文件查看漏洞
- 提示下载,则是文件下载漏洞
漏洞利用
利用原理
- (信息收集信息>猜路径 >>下载配置文件/代码文件 >> 利用服务器软件漏洞> shell> 提权)
- 任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。
- 下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
- 下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
- 下载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
/usr/local/app/php5/lib/php.ini //PHP配置文件
/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参数
修复建议
-
对下载路径进行过滤,如下载前对传入的参数进行过滤,并且对下载文件类型进行检查,是否是允许下载的类型
-
过滤.(点),使用户在url中不能回溯上级目录
-
正则严格判断用户输入参数的格式
-
php.ini配置open_basedir限定文件访问范围
摘抄
很多语言都是假的,
只有一起经历过的才是真的。
– 柴静 《看见》
以上是关于任意文件下载漏洞知识点的主要内容,如果未能解决你的问题,请参考以下文章
WordPress删除任意文件/执行任意代码安全漏洞临时修复方法
FFmpeg本地任意文件读取漏洞 / FFmpeg Local arbitrary file read vulnerability