文件上传漏洞的危害
2018年,文件某跨境电商平台的上传安全团队在例行巡检时发现,后台文件目录里多了一个名为“debug_log.php”的漏洞文件。打开一看,文件只有一行代码: 文件上传漏洞的漏洞危险性,在于它把“写文件”这个动作变成了攻击跳板。文件正常业务需要用户上传图片、上传文档、漏洞视频,但服务器如果只检查文件扩展名,攻击者就能把 更麻烦的是,这类漏洞往往不需要高深技术。网上有现成的“图片马”生成工具,把一句话木马塞进JPEG的EXIF注释里,上传后配合文件包含漏洞就能触发。有些CMS甚至允许上传 危害不止于单台服务器。上传的WebShell可以当作代理,攻击者用它扫描内网数据库、Redis、Docker API。去年某金融公司被入侵,源头就是一个未修复的编辑器上传漏洞——攻击者上传了 有人觉得“我只允许上传图片,并且做了二次渲染”就安全了。但二次渲染也可能被绕过。比如将恶意代码藏在图片的ICC色彩配置文件中,渲染后依然保留。或者利用竞争条件:上传时是合法图片,服务器校验通过后、重命名前,攻击者用条件竞争替换成木马。这类漏洞在CTF比赛里常见,真实环境里同样能打。 防御这事,说复杂也复杂,说简单就几条。别用黑名单,用白名单——只允许 我见过最离谱的配置是上传目录和网站根目录同级,且 文件上传漏洞的修复成本极低,但造成的损失可以极高。一个上传点失守,整台服务器沦陷,内网被穿透,数据被拖走。别等到服务器里多了个eval($_POST['cmd']);。上传这意味着攻击者已经拿到了服务器执行任意命令的漏洞权限——上传、删除、文件篡改数据,上传甚至横向渗透内网。漏洞而入口,文件仅仅是上传一个看似无害的“用户头像上传”功能。.php改成.jpg再上传,或者利用解析漏洞让shell.php.jpg被当作PHP执行。一旦恶意文件落地,WebShell就是攻击者的后门。我见过一个案例,某政府网站被上传了.htaccess文件,里面重写了规则,把所有.jpg请求都交给PHP解析——原本的图片目录瞬间变成木马乐园。.phtml、.php5这类冷门后缀,而黑名单里偏偏漏掉了。我试过用一个.phar文件绕过某开源论坛的检测,上传后直接反序列化,服务器权限到手。整个过程不到三分钟。.jsp木马,然后通过服务器上的SSH密钥登录了核心交易系统。数据泄露、勒索加密、业务中断,全从那个小小的上传框开始。.jpg、.png、.gif,并且强制重命名成随机字符串。文件内容要检测,不能只看后缀。上传目录禁止执行脚本,Nginx里加一句location ~* /uploads/.*\.(php|jsp|asp)$ { deny all; }。最好把文件存到独立域名或对象存储,彻底切断解析可能。php.ini里file_uploads开着,allow_url_include也开着。攻击者上传一个.txt文件,里面写,然后通过文件包含直接RCE。这种环境就像把钥匙插在门锁上,还贴了张纸条写“欢迎光临”。debug_log.php才想起来检查上传逻辑。现在就去看看你的上传目录,有没有不该存在的文件。
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-