研究人员公布了 WordPress 核心中一个名为 Click2Shell 的新漏洞的技术细节和概念验证代码。该漏洞可通过一系列利用,在攻击者无需直接进行身份验证的情况下,远程执行服务器上的 PHP 代码。WordPress 已在上周发布的 7.1.1 版本中修复该漏洞,但概念验证漏洞利用代码的公开使受影响网站更新变得更加紧迫。
该利用链如何运作?
渗透测试平台 pwn.ai 的研究员 Paulos Yibelo 发现了该漏洞,并于 8 月 22 日向 WordPress 报告。根据报告,主题预览链接中的一个值会通过 WordPress.org 的 Themes API 被解析一次,随后由管理员浏览器中的 JavaScript 以不安全的方式处理。
这使得攻击者可以将官方目录中的主题添加到网站,而无需管理员明确安装该主题。即使主题未启用,其中的 PHP 代码也可以在 Customizer 工具中预览时运行。要完成攻击,攻击者会发送一个特制链接,但网站的已登录管理员必须访问该链接。
利用成功后可能发生什么?
研究人员使用一个存在漏洞的主题作为利用链的第二部分,以运行由攻击者指定的 PHP 代码。完整报告指出,攻击者可以在服务器上执行命令,包括修改或删除文件,以及访问用户数据和包含数据库凭据与身份验证机密的 wp-config.php 文件。
这可能使攻击者创建恶意管理员账户,或向网站注入恶意脚本。此外,根据研究人员的说法,WordPress Core 7.1.0 及更早版本中的基础漏洞还可被用于迫使网站安装 WordPress.org 目录中存在的其他任意易受攻击主题。
需要什么权限?
攻击者不需要 WordPress 账户、用于安装的 nonce 令牌,也不需要自身具备特殊管理权限。但 Click2Shell 利用链不会仅通过发送请求而生效;已登录管理员必须与该链接交互。WordPress 安全公司 Patchstack 表示,Author 和 Editor 账户不具备安装主题所需的权限。
攻击者可能通过定向钓鱼将链接发送给管理员,也可能利用现有的 XSS 漏洞,使管理员的浏览器发送请求。因此,管理员交互这一条件并不会消除漏洞的危险性,但它限定了攻击场景,也意味着该漏洞并非完全自动化的远程利用。
实际会有哪些变化?
WordPress 通过在 jQuery 选择器中使用主题名称前对其进行转义,并将选择器限制为实际的主题卡片,修复了该问题。Patchstack 建议更新至 7.1.1 或更高版本,尤其是在完整细节和概念验证代码已经公开之后。
对于暂时无法立即更新的网站,Patchstack 指出,启用 DISALLOW_FILE_MODS 设置可以阻止攻击者迫使网站安装恶意主题或插件。这仍然只是临时缓解措施,不能替代更新 WordPress 核心,以及检查是否存在任何意外的更改或管理员账户。