通过从外部网站毒害 Bingbot 索引,在 Bing.com 上造成持久性 XSS。
目录
-
介绍
-
什么是 Bing 和 Bingbot
-
Bingbot 的工作原理
-
漏洞详细信息
-
漏洞发现与分析
-
Bing 上发现持久性 XSS
-
概念验证(PoC)
-
披露时间表
介绍
在这篇博文中,我将讨论通过从外部网站毒害Bingbot来对 Bing.com 造成持久性 XSS 的细节。
什么是存储型或持久型 XSS?
存储型攻击是指注入的脚本永久存储在目标服务器上,例如存储在数据库、消息论坛、访客日志、评论字段等中。受害者在请求存储信息时会从服务器检索恶意脚本。存储型 XSS 有时也称为持久型或 II 型 XSS。欲了解更多信息,请访问:跨站点脚本 (XSS) | OWASP
什么是 Bing 和Bingbot
Bing是微软开发的搜索引擎,提供网页、视频、图片和地图搜索。它旨在通过提供有组织且相关的搜索结果来帮助用户做出明智的决定。
Bingbot是微软开发的一款网络爬虫,也称为蜘蛛或搜索引擎机器人。其主要功能是探索和索引微软搜索引擎 Bing 的网页。Bingbot 于 2010 年 10 月推出,它通过外部和内部链接来发现新网页,并使用对现有网页的更改来更新 Bing 的索引。
这一过程称为“抓取”,可帮助 Bing保持其搜索结果的更新和相关性。Bingbot 收集的数据被输入到 Bing 的搜索算法中,该算法评估内容的上下文和质量以确定其在搜索结果中的排名。
Bingbot 如何运作?
当 Bingbot 抓取网络时,它会向 Bing 发送有关其发现的信息。然后,这些页面会被添加到 Bing 索引中,并使用算法来分析这些页面,以便我们能够有效地将它们包含在搜索结果中,包括确定哪些网站、新闻文章、图片或视频将被包含在索引中,并在用户搜索特定关键字时可用。在此处详细了解 Bing 如何查找和索引页面。
漏洞详细信息
Bing 平台上发现了一个存储型跨站点脚本 (XSS) 漏洞。当 Bing 以不安全的方式从互联网检索和存储视频详细信息(例如标题、描述和所有者姓名)时,就会发生此漏洞。此过程涉及Bingbot或 Bing 的网络爬虫在未经过适当清理的情况下索引此元数据,从而将恶意脚本保留在 Bing 的索引中。
影响
-
恶意行为者可以在 Bing 的 Web 应用程序环境中执行任意 JavaScript。
-
这可能导致各种攻击,包括但不限于 cookie 盗窃、会话劫持、污损和网络钓鱼。
-
该漏洞影响所有查看受感染视频详情的用户,带来重大的安全风险。
漏洞发现与分析
当用户在 Bing 上搜索视频时,搜索引擎会处理查询并从其索引中检索相关内容。搜索结果页面显示视频详细信息,包括未经清理的潜在恶意脚本。该应用程序以 JSON 模式存储这些数据,但内容类型设置为text/html
,这可能导致持久性 XSS。
当用户观看或与这些受感染的视频互动时,恶意脚本会在 Bing 的 Web 应用程序上下文中执行。发生这种情况的原因是,浏览器根据内容类型将数据解释为 HTML,从而允许嵌入在 JSON 数据中的脚本运行。因此,这可能导致各种安全威胁,包括数据盗窃、会话劫持、网络钓鱼和篡改。这些威胁会影响观看受感染内容的用户,可能会危及他们的个人信息和帐户的完整性。
不正确的内容类型设置使攻击者更容易在 Bing 的 Web 应用程序中注入和执行脚本,从而绕过依赖正确的 MIME 类型处理来防止此类漏洞的典型安全措施,这加剧了风险。
Bing 上发现持久性 XSS
在探索 Bing 的过程中,我发现 Bing 视频搜索中存在一个漏洞。当用户搜索视频时,Bing 会显示从外部来源获取的未经适当清理的视频详细信息。这允许注入恶意脚本,带来重大安全风险。
回到故事
有一天,我在使用 Bing 时发现,如果用户在 Bing 图像搜索中搜索图像,并且结果是一个视频,并且用户尝试查看它,则 Bing URL 变为:https://www.bing.com/videos/vdasync
-
点击并查看详细信息后,我发现该 API 返回了Bingbot从其他网站收集并存储在 Bing 搜索系统中的视频元数据。
-
但我注意到此 URL 的内容类型返回
Content-type: text/html; charset=utf-8
为applicarion/json
如果我们可以控制元数据,并且Bingbot可以检索我们的数据并将其存储到Bing 网站而无需清理或编码,那会怎样?
正如我在上一节关于 Bingbot 工作原理中提到的,Bingbot 帮助 Bing 保持其搜索结果的更新和相关性。因此,我尝试在不同的平台上创建视频帖子。
问题是我不知道我的新视频要花多长时间才能出现在 Bing 搜索中,所以我考虑在以下网站上发布新帖子:
-
VK:https://vk.com/video/@club226523289
-
抖音:https://www.tiktok.com/@m3ez_xss
-
Instagram:(@m3ez.ss)• Instagram 照片和视频
-
和其他网站
为什么我没有在 YouTube 上发布视频
因为,正如你从https://www.bing.com/videos/vdasync的屏幕截图响应中看到的那样,数据响应是 JSON 格式的。要执行 JavaScript 或 HTML 注入,我需要确保我可以使用
<>
(尖括号)。但在 YouTube 上,这是不可能的。此限制也适用于其他流行平台,如 Vimeo 和 Dailymotion。
幸运的是,几天后,我发现我在 vk.com 上发布的视频出现在 Bing 视频搜索中,这让我完成了报告和概念验证,如下所示
概念验证(PoC):
-
在网站上发布视频,并在所有者的姓名、视频标题或说明中包含脚本:
-
例如,我通过 vk.com 上传了一个视频,内容如下:
< script > prompt('Supakiad S. (m3ez) 的存储型 XSS',document.domain); </ script >
-
发布视频帖子,以便任何人都可以访问,包括允许 Bingbot 抓取我的视频元数据。
-
等待Bingbot从vk.com抓取并检索视频并保存详细信息(包括注入的XSS脚本)。
-
开始搜索“Microsoft Bing Video”网络应用程序。我使用的关键字是
"m3ez" site:vk.com
。
-
点击视频,URL中会出现mid参数:
-
将前面步骤中的mid参数附加到以下 URL 中:
https://www.bing.com/videos/vdasync?mid={mid }
导航到该 URL 后,XSS 负载将被触发,如下所示。
https://www.bing.com/videos/vdasync?mid=6DD18424C941635DA77F6DD18424C941635DA77F
视频通话
披露时间表
-
2024 年 7 月 1 日:发现漏洞。
-
2024 年 7 月 1 日至 7 日:初步报告并等待 PoC 证据。
-
2024 年 7 月 8 日:通过 MSRC 门户报告。
-
2024 年 7 月 9 日:状态移至 Review/Repro。
-
2024 年 7 月 15 日:经 MSRC 确认;状态转为开发。MSFT Bounty 团队开始审查可能的赏金。
-
2024 年 7 月 17 日:博客文章草稿发送至 MSRC 进行审核。
-
2024 年 8 月 5 日:MSRC 审查了博客文章,确认已修复,状态移至预发布和完成。
-
2024 年 8 月 6 日:MSFT 赏金团队因M365 赏金计划下的 89310 号案件获得 3000 美元奖励| MSRC(microsoft.com) 。
-
2024 年 8 月 8 日:发布这篇博文。
原文始发于微信公众号(独眼情报):Microsoft Bing 视频索引系统中的存储性XSS 漏洞(赏金3000$)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论