任意文件下载
根据file关键字的值来作为要下载的文件名并判断文件是否存在。存在即会下载。
exp.php与download.php在同一级目录下
因此可以通过修改参数名来下载服务器上的任意文件。
此参数为绝对路径。文件下载漏洞的利用除了给绝对路径外,也可以给相对路径。例如:
../可实现目录穿越,来获得该目录上一级的内容
漏洞利用:
1. 获得站点源码:
即可获取download.php的源代码了。
获得源代码便从黑盒变成一个白盒,便可以去做代码审计。
2. 获得站点与中间件配置文件:
配置文件包括ip地址,用户名和密码,端口等
漏洞挖掘:
发现可以链接和参数之后,便可以进行漏洞验证
:
注:window在使用相对路径访问并下载文件时,无法跨盘完成该操作。但可以通过读源码来判断其是否存在漏洞。
当发现在一个站点中发现其具有读取文件的功能时,
…/可以多给,其返回到根目录后便不会再有上一级。
防御
文件有对应的id值,id值有对应的文件路径。
添加文件下载的默认前缀,即默认的路径,并过滤…/