您现在的位置是:时尚 >>正文

文件上传漏洞的防范措施

时尚2173人已围观

简介去年某CMS爆出一个上传漏洞,攻击者传了个后缀为`.phtml`的文件,服务器直接当PHP执行了。这个案例里,开发者明明写了黑名单校验,却漏掉了Apache配置里`AddHandler`把`.phtm ...

去年某CMS爆出一个上传漏洞,文件攻击者传了个后缀为`.phtml`的上传施文件,服务器直接当PHP执行了。漏洞这个案例里,范措开发者明明写了黑名单校验,文件却漏掉了Apache配置里`AddHandler`把`.phtml`也映射给了PHP解析器。上传施文件上传漏洞的漏洞可怕之处就在这——你以为拦住了,其实只是范措换了个门进去。

白名单校验是文件底线。别用黑名单,上传施黑名单永远列不全。漏洞`.php`、范措`.php3`、文件`.php5`、上传施`.phtml`、漏洞`.phar`,还有Windows下`shell.php.`(末尾带点)或者`shell.php `(带空格)这种骚操作,黑名单根本防不住。正确做法是只允许业务需要的后缀,比如图片站就只放`jpg`、`png`、`gif`,其他一律拒绝。校验的时候别用`$_FILES['file']['type']`,那个是浏览器传的,随便改。用`finfo_file()`或者`exif_imagetype()`读文件真实MIME类型,再配合后缀白名单,双保险。

文件名重命名是第二道闸。用户传上来的文件名不可信,里面可能带`../`搞路径穿越,也可能带`%00`截断(老版本PHP)。我见过有人直接把原始文件名拼到上传目录后面,结果攻击者传了个`../../etc/cron.d/shell`,直接写进系统计划任务。稳妥做法是:生成随机文件名,比如`md5(uniqid())`加白名单后缀,存到Web根目录之外的路径。对,别放`/uploads/`这种能直接访问的地方。要用的时候通过一个脚本读出来输出,顺便做权限校验。

服务器配置得跟上。Nginx里把上传目录的PHP解析关掉,加一行`location ^~ /uploads/ { location ~ \.php$ { return 403; } }`。Apache就在`.htaccess`里写`php_flag engine off`。有个细节:很多人只关了`php`后缀,忘了`phtml`、`phar`这些。干脆用``全匹配,然后`Require all denied`。IIS的话,处理程序映射里把上传目录的`.php`映射删掉,别偷懒。

文件内容也要查。图片马听说过吧?传个正常图片,用十六进制编辑器在末尾插一段``。服务器不解析图片,但万一有本地文件包含漏洞,这个图片就能被当PHP执行。所以上传图片后,用`getimagesize()`验证是不是真图片,再用GD库重新生成一遍——重新采样会丢掉附加的恶意代码。这招对图片马基本通杀。

权限控制别忘。上传目录给个`755`,文件给`644`,别给执行权限。Web进程用户和上传目录属主分开,比如Nginx跑`www-data`,上传目录属主是`upload`,`www-data`只读不写。这样就算传了webshell,也执行不了,因为没权限。

日志和监控得做。记录每次上传的IP、文件名、大小、时间,存到数据库或者独立日志文件。发现某个IP短时间传了大量`.php`文件,直接封。我见过一个站被传了三千多个webshell,日志里全是`POST /upload.php`,但没人看,等到被挂马才反应过来。

最后说个真实案例。某次渗透测试,目标站上传功能白名单校验很严,只允许`jpg`。但服务器是Nginx,配置里写了`location ~ \.jpg$ { fastcgi_pass ... }`——对,他们把jpg也交给PHP处理了。传个`shell.jpg`,里面写PHP代码,直接getshell。所以别光看代码,服务器配置也得审。上传漏洞的防范是个链条,代码、配置、权限、监控,哪一环松了都可能被突破。

Tags:

上一篇:楼顶补漏报价单

下一篇:高频彩票网站

相关文章

  • 竞彩数据分析工具

    时尚

    昨天下午三点,我盯着手机屏幕上的赔率变化曲线,突然意识到自己过去半年在竞彩上花的钱,足够买一台中档笔记本了。这不是冲动消费,而是每次都觉得“差一点就能看穿比赛”。直到我动手写了个简单的数据分析脚本,把 ...

    【时尚】

    阅读更多
  • 星空视频下载免费下载

    时尚

    星空视频的下载按钮藏得够深。我翻了三个网页才找到真正的下载入口,前面两个全是伪装成“高速下载”的广告插件。这大概是所有视频下载工具的通病——免费的东西总得从你身上刮点别的下来。 不过话说回来,这个工具 ...

    【时尚】

    阅读更多
  • 暗黑2暗月版cubemain文件

    时尚

    《暗黑2暗月版cubemain文件》——这名字听着像某个mod的隐藏代码,但玩过的人都知道,它其实是整个暗月世界的“炼金术总纲”。打开这个文件,满屏的“CubeMain.txt”表格,每一行都是一个合 ...

    【时尚】

    阅读更多


友情链接