谈谈 File Upload | 文件上传的理解
1.漏洞描述
攻击者可以利用文件上传功能,上传恶意文件,包括木马后门文件,对服务器造成危害。
2.漏洞原理
Web 开放了文件上传功能。
对文件上传功能没有做限制或限制不足。
任意文件上传。
3.漏洞场景
Web 应用开放了文件上传功能,包括头像上传,附件上传等。
用户可以利用文件上传功能向服务器上传文件。
4.漏洞评级
⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ 高危
5.漏洞危害
- 获取WebShell。
- 任意文件读取。
- 任意命令执行。
- 控制网站。
- 控制服务器。
- ...
6.漏洞验证
<?php
@eval($_REQUEST[777]);phpinfo();
?>
7.漏洞利用
一句话木马
图片木马
8.防御方案
代码角度:
- 采用白名单策略,严格限制上传文件的后缀名;
- 上传文件重命名,尽量少的从客户端获取信息,包括文件名、文件类型、文件内容等;
- 文件内容检测;
- 进行二次渲染,过滤掉图片马中的恶意代码;
- 避免文件包含漏洞;
- 严格处理文件路径,防御00 截断漏洞;
- 检测Token 值,防止数据包重放。
业务角度:
强口令策略,避免恶意攻击者登录网站后台;
尽量避免Web 用户修改上传白名单。
Web 容器角度:
- 及时更新Web 容器,防止解析漏洞产生。
- 禁用Web 容器PUT 方法。
系统角度:
- 避开空格、点`.`、`::$DATA` 等windows 系统特性。
服务器部署:
- 严格控制权限,执行权限与写权限分离。
- 建立单独的文件存储服务器,类似于站库分离。
9.典型案例
- DVWA | low
- DVWA |
- DVWA | hige