1、文件上传漏洞简介
文件上传漏洞是指文件上传功能没有对上传的文件过严谨的过滤和合理的控制,而导致用户可以通过某些手段上传可执行的脚本文件,并通过脚本文件获取服务器权限。文件上传本身是没有问题的,有问题的是服务器如何处理、解释上传后的文件。如果服务器的处理逻辑不够安全,则会导致严重后果。
存在上传漏洞需满足:1)上传的文件能够被web容器解释执行;2)能通过web访问这个文件。
2、文件上传漏洞的危害
- 上传webshell,控制服务器,进行代码执行等
- 上传木马文件可进行挖矿、僵尸网络
- 通过文件上传进行提权
- 上传钓鱼图片进行钓鱼
- ……
3、文件上传漏洞的成因及防御
- 服务器配置不当 //防御:启用安全的配置
- 开源编辑器的上传漏洞 //防御:更新版本或打补丁
- 本地文件上传限制被绕过 //防御:在服务端进行过滤限制,客户端限制都是可被绕过的
- 过滤不严或者被绕过 //防御:设置文件上传目录为不可执行
- 文件解析漏洞导致文件执行 //防御: 在服务端进行文件类型检查
- 文件路径截断 //防御:使用随机数更改文件名
4、文件上传漏洞绕过方式
1、js检查 2、MIME类型判断 3、上传特殊可解析后缀
4、.htaccess绕过 5、后缀大小写绕过 6、点绕过
7、空格绕过 8、::$DATA绕过 9、双写绕过
10、00截断 11、文件头检查 12、getimagesize绕过
13、exif_imagetype绕过 14、图片二次渲染绕过 15、Apache解析漏洞
16、IIS解析漏洞 17、Put方法 18、……
任何可以上传文件的地方,都有可能存在文件上传漏洞。
文件上传漏洞示例见下篇文章~