文件上传-知识点

文件上传

上传漏洞存在的必要条件

  • 存在上传点
  • 可以上传动态文件
  • 上传目录有执行权限,并且上传的文件可执行
  • 可访问到上传的动态文件

常见检验方法:

  • 文件后缀检验:黑白名单
  • MIME检验 文件头content-type字段校验(image/gif)
  • 文件头检验
  • 完整文件结构检验
  • 恶意文件内容检测

常见漏洞和绕过方式:

  • IIS/nginx +php fastcgi解析漏洞 会向上查找
  • ISS PUT攻击
  • Nginx文件名逻辑漏洞 nginx: 0.8.41~14.3/1.5.0~1.5.7
  • Apache解析漏洞 1.x/2.x 向前解析
  • IIS 5.0/6.0解析漏洞:默认不解析;号后面内容
  • ::$DATA文件流特性绕过
  • %00截断:php<5.3.4
  • 条件竞争

防御方法

  • 使用白名单限制可以上传的文件扩展名
  • 注意0x00截断攻击(PHP更新到最新版本)
  • 对上传后的文件统一随机命名,不允许用户控制扩展名
  • 上传文件的存储目录禁用执行权限

文件上传-知识点
https://coutcin-xw.github.io/2022/04/23/文件上传-知识点/
作者
CoutCin
发布于
2022年4月23日
许可协议