文件上传漏洞可导致恶意代码执行、服务器被控制
攻击者上传恶意文件
↓
绕过文件类型检查
↓
文件被保存到服务器
↓
访问恶意文件执行代码
↓
服务器被控制
双扩展名、大小写、特殊字符绕过
中危伪造 Content-Type 绕过检查
中危多重验证、文件重命名、内容检查
防护方案| 方式 | 示例 | 原理 |
|---|---|---|
| 双扩展名 | shell.php.jpg | 某些服务器按第一个扩展名解析 |
| 大小写 | shell.PhP | Windows 不区分大小写 |
| 空字节 | shell.php%00.jpg | 截断文件名 |
| MIME 伪造 | Content-Type: image/jpeg | 客户端可任意设置 |
| 黑名单遗漏 | .phtml, .php5 | 未覆盖所有危险扩展 |