文件上传-知识点
文件上传
上传漏洞存在的必要条件
- 存在上传点
- 可以上传动态文件
- 上传目录有执行权限,并且上传的文件可执行
- 可访问到上传的动态文件
常见检验方法:
- 文件后缀检验:黑白名单
- 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/文件上传-知识点/