文件上传只校验后缀,被人把PHP木马改成jpg传上来,直接拿下我服务器

5年前 (2021-10-05)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

之前做个用户上传头像的功能,我写校验的时候只判断文件后缀是不是jpg、png,是就允许上传,当时觉得这样就够了。结果上线一周,我发现服务器上多了个陌生的PHP文件,一点开是个浏览器一句话木马,我当时后背全凉了,赶紧查日志,发现有人把一个PHP木马的文件名改成head.jpg,直接传上来,然后通过浏览器访问这个文件,就直接拿到了服务器权限。 问题就出在我只校验文件后缀,根本不校验文件真实内容,人家把木马后缀改成jpg就能传,上传目录我还没设置权限,PHP文件能直接执行,等于把服务器大门直接打开。后来我改了三个地方:第一,校验文件真实MIME类型,不看后缀;第二,上传目录关闭PHP执行权限,哪怕传上来PHP文件也跑不起来;第三,限制文件大小,重命名上传的文件,不用用户传的文件名。改完之后,再也没出现过传木马的事。 很多新手写上传功能,和我当初一样,觉得判断个后缀就安全了,其实这是最基础的漏洞,网上的扫描脚本自动找这种上传点,传个木马上来,整个服务器上的所有网站、数据库、用户数据,全在人家手里。我当时运气好,那个木马是个新手写的,只改了个文件,没删我数据,要是碰到个狠人,把我整个服务器格式化,我半年的内容全没了。 从那之后我写任何上传功能,必做这三步:校验真实MIME、上传目录禁执行、文件重命名,三步缺一不可。别觉得自己是小站没人盯着,这些漏洞都是脚本自动扫的,你只要裸奔在网上,迟早会被扫到。我那次被传木马的经历,真的给我上了最贵的安全课,现在不管是写小程序上传、网站上传,这三步都是默认必做的,再也不裸奔。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/2022.html

0
回帖

文件上传只校验后缀,被人把PHP木马改成jpg传上来,直接拿下我服务器 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息