文件上传漏洞是获取服务器权限最快也是最直接的一个漏洞
原理
文件上传漏洞是指用户上传可执行脚本文件 , 并通过脚本文件控制Web服务器
利用方式
文件上传漏洞的利用分为客户端和服务端
客户端主通过JS代码检验文件后缀名,使用代理软件抓包就可以绕过,重点在后边的服务端
服务端有三种常见的攻击方式,分别是文件后缀,文件内容以及条件竞争
文件后缀以绕过黑白名单为主,包括文件类型,空格,点,双写,大小写,以及解析漏洞,
比如Apache分布式配置文件(.htaccess文件)
Windows的文件流(::$DATA)和00截断
文件内容主要以图片马为主,在图片中插入木马开启后门
条件竞争本质上是利用线程并发引发线程安全问题,比如我们同时上传和访问文件,
如果服务端的代码逻辑不严谨,就会导致文件被删除前先被访问,从而控制Web服务器
文件上传漏洞防护
文件上传漏洞的防护有三个方向,分别是文件名 , 文件内容 以及 权限
文件名包括过滤文件后缀名,修改上传后的文件名(可以是基于时间的随机字符串),同时禁止文件路径对外展示
文件内容主要是针对图片马,对文件进行二次渲染,这是最变态的一种方式,可以避免大部分文件上传漏洞
其次是权限,文件上传目录取消执行权限,使上传的脚本不能执行