任意文件下载
一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。
一般链接形式:
download.php?path=
down.php?file=data.php?file=
download.php?filename=
或者包含参数:
&Src=
&Inputfile=
&Filepath=
&Path=
&Data=
常规思路
- 下载常规的配置文件,例如:ssh,weblogic,ftp,mysql等相关配置
- 下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
- 下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。
- 尝试读取/root/.bash_history看自己是否具有root权限。如果没有的话。我们只能按部就班的利用
../
来回跳转读取一些ssh下的配置信息文件,读取mysql下的.bash history文件。来查看是否记录了一些可以利用的相关信息。然后逐个下载我们需要审计的代码文件,但是下载的时候变得很繁琐,我们只能尝试去猜解目录,然后下载一些中间件的记录日志进行分析。
Linux常见的可以利用的文件
/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参数
pikachu文件下载
通过修改文件名可访问下载其他文件
http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=../../../index.php
真实环境——文件下载
dowm.znds.com
下载一个文件后复制其来源地址:
http://222.141.198.208/app.znds.com/down/20210817/dbkgyy_1.7.1_dangbei.apk
但是在网站中直接右键复制链接地址是:
http://down.znds.com/getdownurl/?s=L2Rvd24vMjAyMTA4MTcvZGJrZ3l5XzEuNy4xX2RhbmdiZWkuYXBr
base64编码
将L2Rvd24vMjAyMTA4MTcvZGJrZ3l5XzEuNy4xX2RhbmdiZWkuYXBr
解密得到
/down/20210817/dbkgyy_1.7.1_dangbei.apk
所以要下载
http://222.141.198.208/app.znds.com/index.php
即访问
http://down.znds.com/getdownurl/?s=aW5kZXgucGhw
漏洞修复
过滤".",使用户在url中不能回溯上级目录
正则严格判断用户输入参数的格式
php.ini配置open_basedir
限定文件访问范围
黑白名单