任意文件下载漏洞
原理:
利用存在读文件的函数,读取文件的路径用户可控且未校验或校验不严;输出了文件内容
细节点:
任意文件下载和任意文件读取有着相似的地方,都是需要路径
index.php?f=file:///etc/passwd
index.php?f=../index.php
修复方案:
- 过滤用户数据,如“/”,"*","."等特殊字符
- 更新中间件
- 要下载的文件地址保存至数据库中
- 文件路径保存至数据库,让用户提交文件对应ID或session下载文件
- 用户下载文件之前需要进行权限判断
- 文件放在web无法直接访问的目录下
- 不允许目录遍历服务
- 公开文件可放置在web应用程序下载目录中通过链接进行下载