01
管理员先行动

现在就这样做

首先关闭易受攻击的路径。如果您发现妥协的证据,请在开始清理之前将其保留。

  1. 1
    当怀疑存在妥协时保存证据

    在删除帐户、文件或计划任务之前,保存当前日志并进行完整的文件和数据库备份。如果更改仍在继续,请限制访问或向您的主机寻求帮助。

  2. 2
    更新 WooPayments

    安装您的 WordPress 和 WooCommerce 环境支持的最新版本。不要降级到历史上重要的 5.6.2 版本。

  3. 3
    确认当前版本

    在 WordPress 中,打开 插件 并验证 WooPayments(以前称为 WooCommerce Payments)显示的版本。

  4. 4
    调查暴露时间

    如果版本 5.6.1 或更早的受影响分支处于活动状态,请查看特权帐户、内容、软件、任务、文件和可用审核日志。

02
一目了然

速览

受影响的范围是历史性的。今天的安全操作选择是最新的受支持版本。

CVE
CVE-2023-28121
产品展示
WooPayments,以前称为 WooCommerce 支付
受影响的版本
NVD 描述 5.6.1 及更低版本; Woo 最初的建议针对的是易受攻击的 4.8.0–5.6.1 分支。
历史修复
5.6.2 是 5.6 分支中的第一个固定版本; Woo 还为旧分支发布了修补版本。
潜在结果
未经身份验证的攻击者可以充当高级用户,包括管理员。
NVD 严重程度
CVSS 3.1:9.8 严重(NVD 评估)

“受影响”意味着存在易受攻击的代码。这并不意味着运行该版本的每个商店都成为目标或受到损害。本文有意不再重复数十万家商店遭到黑客攻击的旧说法;可用的资源不支持它。

03
信任和身份

身份验证绕过的工作原理

当 WordPress 决定哪个用户(如果有)属于该请求时发生错误。

WordPress 使用 determine_current_user 建立当前用户时进行过滤。 BitFire 的 2023 年来源审查确定了用于平台结账的 WooCommerce Payments 逻辑,该逻辑在此决策过程中接受了请求控制的身份信息,而无需首先确定调用者是否可信。

这个错误跨越了信任边界:远程请求提供的数据影响了服务器的可信用户身份。因此,易受攻击的代码路径可能会使后续的 WordPress 权限检查作为提升的帐户运行。此描述解释了授权失败,但未发布工作请求或有效负载。

04
证据,而不是假设

我的商店被盗了吗?

没有单一的访问日志行可以回答这个问题。审查几个独立的证据来源。

记录不熟悉的帐户并在删除它们之前确认其所有者。
  1. 1
    管理员帐户和用户

    查找您不认识的帐户、无法解释的权限更改、不寻常的电子邮件地址以及与暴露期重叠的创建时间。

  2. 2
    帖子、页面、插件和主题

    查看最近创建的内容、安装的软件、激活的组件以及对主题或插件文件的更改。

  3. 3
    有计划的工作和坚持

    检查 WordPress cron、服务器 cron、必须使用的插件、启动文件和意外的 PHP 文件,尤其是在用于媒体的位置。

  4. 4
    安全、访问和审核日志

    根据可用事件构建时间表。将可疑请求与用户创建、文件更改、登录和出站活动关联起来。

HTTP 200 并不是妥协的证明

它仅表示服务器返回了成功的 HTTP 响应。许多无害的请求都会这样做。

HTTP 403 并不能证明网站是干净的

它可能显示一个请求被阻止,而不是每个早期或备用尝试都失败。

旧文章中打印的 IP 地址、响应大小和单个请求模式不是可靠的独立指标,已被删除。

05
如果有什么不熟悉的事情

恢复清单

遏制恶意访问,保留足够的证据来理解它,然后删除持久性并轮换秘密。

  1. 1
    保留日志和完整备份

    尽可能将副本保留在受影响的托管帐户之外。

  2. 2
    记录并禁用未经授权的管理员

    在删除访问权限之前捕获帐户详细信息和相关时间。确认陌生帐户不是由您的主机、代理机构或集成维护的。

  3. 3
    扫描并调查持久性

    查看文件、数据库内容、计划任务、活动会话和出站连接。遵循 BitFire 恶意软件扫描和清理指南.

  4. 4
    在更改机密之前遏制恶意代码

    活跃的恶意软件可能会捕获新的凭据。只要事件允许,首先将其隔离或移除。

  5. 5
    轮换商店可以访问的凭据

    根据需要,重置管理员密码、WordPress 盐和会话、API 和支付服务密钥、托管和 SFTP 凭据以及数据库凭据。

  6. 6
    更新、测试和监控

    更新所有支持的软件,删除未使用的组件,测试结帐和集成,并观察可疑行为的返回。

06
纵深防御

为什么分层保护很重要

供应商更新是主要修复。独立控制可以在安装补丁之前或出现另一个应用程序错误时降低风险。

01 · 补丁

删除已知缺陷

更新会改变易受攻击的应用程序逻辑,是对此 CVE 最直接、最可靠的控制。

02 · 请求

检查并限制客户

尽管身份逻辑漏洞可能类似于合法的应用程序请求,但机器人控制和 WAF 规则可以减少恶意流量。

03 · 运行时

强制执行特权操作

当未经身份验证的请求尝试仅限管理员的帐户、文件或数据库操作时,运行时授权控制可以添加另一个边界。

这些控制措施是补充性的,而不是保证性的。请求签名 WAF 可能会阻止已知模式;运行时控制可能会阻止危险的结果;监控可能会揭示所尝试的内容。没有什么可以取代补丁、安全应用程序代码、经过测试的备份或事件响应。

07
注明日期的索赔

时间表和来源

2023 年 3 月,剥削情况发生了变化。这些陈述保留了 Woo 的日期和确定性水平。

  1. 已报告漏洞

    Woo 表示,GoldNetwork 的 Michael Mazzolini 通过其 HackerOne 计划报告了该问题。

  2. 吴发表了咨询意见

    Woo 表示,当时没有证据表明它在自己的安全测试之外被使用,并与 WordPress.org 合作进行自动修补更新。

  3. 调查了可能的利用报告

    Woo 更新了该通报,称一些客户报告了潜在的漏洞,并且正在调查每份报告。

  4. NVD 发布 CVE-2023-28121

    NVD 描述了远程未经身份验证的管理员访问,并指定了 CVSS 3.1 基本分数 9.8。

参考文献

08
常见问题

WooPayments CVE 常见问题解答

历史版本号对于调查很有用,而不是作为降级目标。

5.6.2 仍然是我应该安装的版本吗?

不会。版本 5.6.2 作为 5.6 分支中的第一个修复具有重要的历史意义。安装适用于您维护的环境的最新受支持的 WooPayments 版本。

更新是否会删除现有后门?

不会。更新会关闭这条脆弱的路径。它不会删除之前创建的恶意文件、帐户、任务、会话或数据库更改。

每个客户都应该重置密码吗?

Woo 的公告称,标准 WordPress 密码经过哈希处理,但并未声称每个密码都已暴露。使用证据和暴露时间来指导应对措施。如果存在可疑活动,则包含恶意代码,然后根据需要轮换受影响的管理员密码、会话、盐、API 密钥、支付或服务密钥以及基础设施凭据。

受影响的版本是否意味着我的商店被黑客入侵了?

不。这意味着存在易受攻击的代码。 “易受攻击”、“有针对性”和“已确认受损”描述了不同的情况,不应被视为同义词。

关于作者

科里·马什

Cory 拥有 20 多年的互联网安全经验,是 BitFire 项目的首席开发人员。

阅读更多 BitFire 研究 →
关注商店?

在证据消失之前进行调查。

保留当前日志和备份,关闭易受攻击的路径,并在特权帐户或文件发生更改时获取帮助。

免费保护我的网站 →