Wordfence 的 WordPress 安全研究人员报告说,OptinMonster WordPress 插件中的一个漏洞被发现允许黑客上传恶意脚本来攻击站点访问者并导致整个站点接管。 未能执行基本的安全检查会使超过一百万个站点暴露于潜在的黑客事件。
Wordfence 研究人员评论说:
“……我们详细介绍了 OptinMonster 插件中的一个漏洞,该漏洞启用了一个危险的漏洞利用链,这使得未经身份验证的攻击者可以检索站点的敏感数据并获得对 OptinMonster 用户帐户的未经授权的访问,这可用于向易受攻击的站点添加恶意脚本。 ”
缺乏 REST-API 端点能力检查
这个漏洞并不是因为黑客非常聪明并找到了一种巧妙的方法来利用完美编码的 WordPress 插件。 恰恰相反。
根据流行的 WordPress 安全公司 Wordfence 的安全研究人员的说法,该漏洞是由于 OptinMonster WordPress 插件中的 WordPress REST-API 实现失败导致“能力检查不足。”
正确编码后,REST-API 是一种扩展 WordPress 功能的安全方法,它允许插件和主题与 WordPress 站点交互以管理和发布内容。 它允许插件或主题直接与网站数据库交互,而不会影响安全性…… 如果编码正确。
WordPress REST-API 文档指出:
“……了解 API 最重要的一点是,它可以启用块编辑器和现代插件界面,而不会损害您网站的安全性或隐私。”
WordPress REST-API 应该是安全的。
不幸的是,由于 OptinMonster 实现 WordPress REST-API 的方式,所有使用 OptinMonster 的网站的安全性都受到了威胁。
大多数 REST-API 端点受到攻击
REST-API 端点是代表 WordPress 站点上的帖子和页面的 URL,插件或主题可以修改和操作这些帖子和页面。
但根据 Wordfence 的说法,OptinMonster 中几乎每个 REST-API 端点都编码不正确,从而损害了网站的安全性。
Wordfence 评论了 OptinMonster 的 REST-API 实现有多糟糕:
“……大多数 REST-API 端点的实现不安全,使得未经身份验证的攻击者可以访问运行易受攻击版本插件的站点上的许多不同端点。
…插件中注册的几乎所有其他 REST-API 端点都容易受到授权绕过,因为功能检查不足,允许未经身份验证的访问者,或者在某些情况下,具有最小权限的经过身份验证的用户执行未经授权的操作。”
未经身份验证的意思是攻击者没有以任何方式在被攻击的网站上注册。
一些漏洞要求攻击者注册为订阅者或贡献者,这使得攻击网站变得更加困难,尤其是在网站不接受订阅者注册的情况下。
这个漏洞根本没有这样的障碍,利用 OptinMonster 不需要身份验证,与经过身份验证的漏洞利用相比,这是最坏的情况。
Wordfence 警告使用 OptinMonster 对网站的攻击可能有多严重:
“……任何未经身份验证的攻击者都可以将恶意 JavaScript 添加到运行 OptinMonster 的站点,如果添加 JavaScript 以注入新的管理用户帐户或覆盖插件,这最终可能导致站点访问者被重定向到外部恶意域和站点被完全接管带有 webshell 的代码来获得对网站的后门访问。”
推荐的行动方案
Wordfence 通知了 OptinMonster 的发布者,大约十天后发布了 OptinMonster 的更新版本,堵住了所有的安全漏洞。
OptinMonster 最安全的版本是 2.6.5 版。
Wordfence 建议 OptinMonster 的所有用户更新他们的插件:
“我们建议 WordPress 用户立即验证他们的网站是否已更新到可用的最新修补版本,即本文发布时的 2.6.5 版本。”
WordPress 提供 有关 REST-API 最佳实践的文档 并声称它是一种安全技术。
那么,如果这些安全问题不应该发生,为什么还要继续发生呢?
关于 REST-API 最佳实践的 WordPress 文档指出:
“……它启用了块编辑器和现代插件界面,而不会损害您网站的安全性或隐私。”
有超过一百万个站点受此漏洞影响,人们不得不想知道,如果存在最佳实践,为什么这种漏洞会发生在广受欢迎的 OptinMonster 插件上。
虽然这不是 WordPress 本身的错,但这种事情确实对整个 WordPress 生态系统产生了负面影响。