任意文件下载漏洞

965 阅读1分钟

任意文件下载漏洞

原理:

利用存在读文件的函数,读取文件的路径用户可控且未校验或校验不严;输出了文件内容

细节点:

任意文件下载和任意文件读取有着相似的地方,都是需要路径

index.php?f=file:///etc/passwd

index.php?f=../index.php

修复方案:

  • 过滤用户数据,如“/”,"*","."等特殊字符
  • 更新中间件
  • 要下载的文件地址保存至数据库中
  • 文件路径保存至数据库,让用户提交文件对应ID或session下载文件
  • 用户下载文件之前需要进行权限判断
  • 文件放在web无法直接访问的目录下
  • 不允许目录遍历服务
  • 公开文件可放置在web应用程序下载目录中通过链接进行下载