攻击者可能利用此新漏洞窃取私人和草稿WordPress帖子标标题

发布时间:2025-05-27 12:51:29    关键词:窃取WordPress帖子标题

小心!攻击者可能会利用此新漏洞窃取您的私人(和草稿)WordPress帖子的标题!

截至目前,已有近十亿个网站使用 WordPress 构建,为各种规模的企业和组织提供支持。这使得任何新发现的漏洞都尤为令人担忧——例如 Imperva 研究人员最近发现并报告的漏洞,它可能影响任何 WordPress 网站。在这篇博文中,我们将解释此次攻击本身、导致此次攻击的条件,并提供演示。

我们负责任地向 WordPress 披露了此漏洞,并在 90 天后发布了我们的报告。

要立即了解如何检查您的网站是否存在漏洞以及如何减轻这种威胁,请直接跳至漏洞测试和缓解部分。

执行摘要

Imperva 发现并报告了一个可能影响所有 WordPress 网站的漏洞,该漏洞使威胁行为者有可能窃取敏感的私人和草稿帖子标题。为了保护您的网站,强烈建议您将 WordPress 网站更新到最新版本,并在不使用 XMLRPC 端点时将其禁用。

最后一部分提供了更多信息。

泄露的标题等于真正的威胁

泄露 WordPress 博客文章的草稿或私人标题可能会过早暴露敏感信息,从而对公司造成严重损害。让我们来看几个例子来说明其潜在影响。

2012年,谷歌意外提前发布财报,导致股价暴跌9%,市值在几分钟内蒸发约220亿美元1。同样,2019年,谷歌拟收购Fitbit的消息在正式宣布之前泄露,导致股价波动,并因市场投机加剧和监管审查加强而使谈判复杂化2。此类未经授权的披露可能导致内幕交易、法律责任以及公司声誉受损。此类违规行为会削弱利益相关者之间的信任,并可能造成巨额财务损失。

攻击描述

我们发现,攻击者可以通过特制的 XMLRPC 有效载荷泄露所有私人或草稿帖子的标题。该攻击由一系列发送到受害者站点 XMLRPC 端点的 POST 请求组成。根据服务器响应请求的方式,攻击者可以逐步窃取私人和草稿帖子的标题。

深入探究攻击流程

此次攻击依赖于XMLRPC功能。自 WordPress 3.5(2012 年 12 月发布)以来,所有新安装的 WordPress 应用均默认启用该功能。该功能支持不同系统之间的标准通信,例如,使用 WordPress 以外的博客平台开发的网站。

XMLRPC 提供的功能之一是 ` pingback` 。

WordPress 的 pingback 功能会在您在文章中链接到其他博客时自动通知该博客,并在被链接的博客文章上创建一个类似评论的反向链接(前提是该博客支持 pingback)。流程如下:

  1. 最终用户在博客 1 中发布帖子或评论,其中包含指向博客 2 的链接。
  2. 博客 1 自动向博客 2 发送 pingback 消息。
  3. 博客 2 验证该链接是否确实是指向其某篇博客文章的链接。
  4. 博客 2 导航到博客 1 以确保帖子中存在该链接。

问题出现在步骤 3 中。

博客 2 尝试验证 MySQL 数据库中是否确实存在与传入请求数据相对应的博客文章。

pingback 请求包含两个关键信息:据称包含链接的页面的 URL(pagelinkedfrom),也称为源 URL,以及链接到的博客 2 上的帖子的 URL(pagelinkedto),也称为目标 URL。

请求到达后,博客 2 会立即触发 xmlrpc_call 操作,允许任何插件或附加函数与此事件交互。然后,它会对输入参数进行过滤,以防止任何恶意数据造成损害。之后,它会通过替换 HTML 实体来规范化 URL。它会确保将 pagelinkedfrom 中的任何 &转换回 &,并在 pagelinkedto 中执行相反的操作,以保持正确的 URL 编码。

在继续操作之前,博客 2 会检查源 URL 是否有效。如果源 URL 为空或格式错误,则会返回错误,表明未提供有效的 URL。它还会验证目标 URL 是否指向其自身的网站。

随后,它会尝试解析并识别以下内容中的目标 URL 模式:

  • 基于路径的 ID :它检查 URL 路径是否包含像 p/123 这样的模式,这可能代表帖子 ID。
  • 查询字符串 ID :它在 URL 中查找类似 ?p=123 的查询参数。
  • 片段 ID :如果 URL 中有一个片段(锚点),它可能指示帖子 ID。

如果上述方法均不起作用,博客 2 将无法确定帖子 ID,并返回错误,指出无法使用目标 URL。

当目标 URL 中存在片段时,就会出现此问题。

在这种情况下,正则表达式会删除除 az 或 0-9 之外的任何字符,并在数据库中存在的任何帖子标题中搜索匹配项。但该查询不仅搜索公开帖子,还会匹配并返回任何现有的博客文章,包括私人帖子或草稿帖子。

如果匹配,博客 2 将访问源 URL 来验证它确实包含目标 URL。

因此,攻击者可以劫持此工作流,并在数据库中所有帖子标题(包括私人帖子或草稿帖子)中搜索任意字符串模式。在本文的后面,我们将此机制称为“Oracle”。下一节将详细描述攻击者如何利用它。

 

猜你喜欢