2026-10-22 · 1 分钟阅读

Magento 2 安全指南:修补漏洞并阻断 ClickFix、PolyShell 与 CosmicSting

基于 Magento 2 与 Adobe Commerce 的电商站点始终是自动化攻击活动的目标。每一个新的 2.4.x 版本都会带来一批安全补丁,而攻击者往往在数天内逆向分析这些补丁,并针对尚未更新的站点构造可用的漏洞利用代码。本文介绍近几个月观察到的主要威胁、如何识别它们在服务器上留下的痕迹,以及清除威胁并防止下一次入侵的实用步骤。

为什么未修补的 2.4.x 是首要目标

Adobe 会定期发布 Magento Open Source 与 Adobe Commerce 的安全公告,每份公告都会列出该版本修复的漏洞。从补丁发布到公开的概念验证代码出现,如今的时间间隔以小时而非周计算。仍停留在旧补丁级别的站点,实际上是在运行已被公开并武器化的漏洞。因此第一项对策始终不变:将核心升级到最新的安全版本,并应用针对你所使用分支发布的全部官方补丁与热修复。

ClickFix:伪造的人机验证复选框

ClickFix 是一种社会工程手法,它并不直接利用 Magento,而是滥用访客对熟悉界面的信任。在被入侵的站点上,结账页或落地页会被篡改,显示一个伪造的 Cloudflare『请验证您是真人』组件。访客像在正常验证页面上一样勾选复选框,此时脚本会被静默写入剪贴板。这一刻并不会造成任何损害,页面甚至可能看起来仍在正常运行。

危险出现在第二步。伪造页面会指示访客打开 macOS 或 Windows 的终端窗口,粘贴刚才复制的内容以完成验证。如果访客照做,粘贴的命令就会下载第二阶段的载荷并在客户端设备上执行。对用户而言,规则简单而绝对:绝不要把网页上的命令粘贴到终端。对管理员而言,规则是找到被注入的脚本、将其删除,并封堵导致篡改的入口。

服务器端入侵:PolyShell、CosmicSting 与 env.php

多类漏洞主导了 Magento 2 的事件报告。PolyShell 滥用通过 REST API 的任意文件上传,写入同时是有效图片又是有效 PHP 的多语言文件。CosmicSting 针对模板引擎,可能导致未授权远程代码执行。StyleSmuggler 与 BlockStrap 则遵循类似的模板注入与过滤器绕过模式。在最严重的情况下,攻击者会读取 env.php,提取其中保存的加密密钥并伪造有效的管理员令牌,从而在漏洞路径被封堵之后仍能保持对后台的持久访问。

Magento 2 的主要威胁类型及其影响
漏洞攻击途径影响
PolyShell通过 REST API 的任意文件上传在 pub/media 中写入多语言 PHP 文件
CosmicSting模板引擎注入未授权远程代码执行
StyleSmuggler模板与过滤器绕过代码注入与数据泄露
BlockStrap输入验证缺陷后台访问权限与密钥窃取
ClickFix前端脚本注入在访客设备上执行恶意软件
← 向右滚动查看更多 →

在 app、vendor 与 cache 中查找混淆代码

恶意代码很少显而易见。攻击者会把它藏在标准的 .phtml 模板、核心模块,以及 cache 与 var 目录中生成的文件里。用常见关键字做纯文本搜索往往一无所获,因为载荷是在运行时由 base64 字符串或多个片段拼接而成的。近期的一个案例中,vendor 文件夹内某个 .phtml 文件仅被轻微修改,恶意字符串被拆分到多个变量中。

请将你的安装与同一版本的干净副本进行比对。使用文件完整性校验、检查修改时间,并逐一审查与官方安装包不一致的文件。发现受感染文件时,不要只是删除载荷:应从官方压缩包恢复原始版本,然后升级或封堵导致写入的漏洞路径。

pub/media 中绝不应出现 PHP

media 目录用于存放图片、PDF 及其他静态资源。在 pub/media 下存在 .php、.php7、.phtml 或 .phar 文件没有任何正当理由。然而攻击者仍不断上传这类文件,最常藏身的位置是 pub/media/custom_options/ 与 pub/media/custom_options/quote/,即上传选项文件的存放目录。请递归扫描这些目录,删除所有可执行文件,并确认上传配置会拒绝异常扩展名。

在边缘层用 Cloudflare、Nginx 与 Apache 拦截

如果入口仍然敞开,仅清理服务器是不够的。请在请求到达 Magento 之前封堵漏洞路径。在 Cloudflare 中,你可以创建 WAF 规则,拒绝发往 /pub/media/custom_options/ 及类似目录的请求,或对任何试图访问 media 路径下 PHP 文件的请求发起质询。在源站服务器上,请在 Nginx 或 Apache 中添加等效规则,以便在流量绕过 CDN 时保护依然有效。

请记住,边缘规则只能拦截你已经知道的请求。应将其与补丁、文件监控以及定期的代码审计结合使用。

修复检查清单

安全恢复的操作顺序
步骤操作
1将 Magento 升级到最新的 2.4.x 版本并应用所有安全补丁
2扫描 app、vendor、cache 和 var 目录,查找混淆或被修改的文件
3从官方安装包恢复原始文件
4删除 pub/media 中所有 PHP、php7、phtml 和 phar 文件
5轮换加密密钥并使现有管理员会话失效
6在 Cloudflare、Nginx 或 Apache 中拦截存在风险的路径
7删除并重新生成所有缓存和编译代码
← 向右滚动查看更多 →

结语

Magento 的安全是一个循环,而不是一次性任务。及时打补丁、校验文件完整性、让可执行代码远离 media 目录,并封堵你并不需要的路径。如果你怀疑存在 ClickFix 注入,请立即提醒客户:阻止损害最快的方法,就是确保没有人把任何内容粘贴到终端里。

让我们合作吧

您需要更多信息、项目帮助或开发构想吗?

无论是简单的问题还是完整的项目,我都在这里。联系我,让我们将您的想法变为现实。

联系我 →

切换主题

选择一个专业主题进行探索: