绕过 Mozilla 中的电子邮件验证

admin 2024年11月29日00:11:06评论13 views字数 2525阅读8分25秒阅读模式

我最近在 Mozilla 的一个产品中发现的一个有趣的业务逻辑漏洞。

绕过 Mozilla 中的电子邮件验证

我带着我值得信赖的代理和很多好奇心,在 Mozilla 的产品周围闲逛。我深入研究 — 点击、测试并试图了解每个小功能的工作原理。在深入研究了所有请求和功能之后,我开始觉得自己像个即将破案的侦探。但有一款产品脱颖而出 — 一款引起了我注意的监控产品。这是我测试的重点,我发现的精力是值得的。让我解释一下。

应用程序如何运作

首先,让我简要介绍一下该应用程序的工作原理。

Mozilla 的 Monitor 旨在帮助用户随时了解数据泄露情况。用户可以用他们的电子邮件注册,以便在他们的凭证在任何已知的违规行为中被盗用时收到提醒。它扫描泄露信息的大型数据库并交叉引用用户电子邮件以通知他们任何暴露。

建筑

从架构中可以明显看出,泄露数据由 haveibeenpwned.com 提供支持。有了这个基础,我们现在的重点将转移到识别和解决特定的 logic 漏洞上。

绕过 Mozilla 中的电子邮件验证

正如我提到的,主要功能围绕添加电子邮件地址进行监控。在免费试用中,每个 Mozilla 帐户最多可以添加 5 封电子邮件。

例如,假设您添加了一封类似于 [email protected] 的电子邮件 — 添加后,验证令牌将发送到该电子邮件地址,需要确认该地址才能激活监控。

绕过 Mozilla 中的电子邮件验证

绕过 Mozilla 中的电子邮件验证

深入了解 Mozilla 的监控产品

我首先检查了响应中是否有任何泄露的验证令牌,但处理得很好。接下来,我尝试使用各种技巧来处理我发送到服务器的请求。例如,我尝试在同一请求中添加多封电子邮件,希望触发错误或检索任何潜在的泄漏。我还通过在一个连接中发送多封电子邮件来测试争用条件,以查看服务器是否会错误地处理请求或将相同的验证令牌发送到不同的电子邮件。但是,服务器再一次完美地处理了所有事情。

这里还有一个问题!v erification 令牌太长,无法猜测或暴力破解。例如,像这样的代币几乎不可能破解。8034a6f3-cecd-49a4-9c43-2cf5976380a1

绕过 Mozilla 中的电子邮件验证

如果没有那个验证令牌,我们作为黑客现在就有麻烦了 :))

源代码审查

我很幸运,因为 Mozilla 的产品有一个开源代码,所以,我决定更深入地研究产品的开源代码,并花时间审查它。

绕过 Mozilla 中的电子邮件验证

我很幸运地发现了一个终端节点,它可以检索添加到帐户 /api/v1/user/breach 的所有电子邮件,以及与每封已验证电子邮件相关的违规行为。这是一个了不起的发现!现在,让我们进一步探索它的功能以获得更好的理解。

绕过 Mozilla 中的电子邮件验证

功能详细说明getAllEmailsAndBreaches

(如果你不在乎那个解释,你可以跳过它)

通过搜索该函数,我发现该函数不仅仅检索已验证电子邮件的数据;它还返回未经验证的电子邮件的信息。getAllEmailsAndBreaches

绕过 Mozilla 中的电子邮件验证

该函数旨在收集和返回与用户关联的电子邮件地址,以及与这些电子邮件相关的任何违规行为。以下是该函数的运行方式及其对已验证和未验证电子邮件的影响:getAllEmailsAndBreaches

  1. 功能定义及参数

  • 该函数采用两个参数:,其中包含有关用户及其关联电子邮件地址的信息,以及 ,这是数据库中的泄露记录数组。userallBreaches

绕过 Mozilla 中的电子邮件验证

2. 数组的初始化

  • 初始化两个数组以存储已验证和未验证的电子邮件。该数组将保存已确认为有效的电子邮件,而该数组将存储尚未验证的电子邮件。verifiedEmailsunverifiedEmails

绕过 Mozilla 中的电子邮件验证

3. 错误处理

  • 该函数包含错误处理,以确保用户对象和违规列表都有效。

绕过 Mozilla 中的电子邮件验证

4. 检索用户电子邮件

  • 此行调用 ,它从数据库中检索与用户关联的所有电子邮件地址。请务必注意,这可能包括已验证和未验证的电子邮件 :))getUserEmails

绕过 Mozilla 中的电子邮件验证

5. 处理已验证和未经验证的电子邮件

  • accounts.firefox.com 用户的主要电子邮件始终首先处理,并将其捆绑到数组中:verifiedEmails

绕过 Mozilla 中的电子邮件验证

  • 接下来,该函数遍历 .对于每封电子邮件,如果标记为已验证,则会将其捆绑到数组中。但是,如果电子邮件未经过验证,则会将其添加到数组中:monitoredEmailsverifiedEmailsunverifiedEmails

绕过 Mozilla 中的电子邮件验证

6. 返回数据

  • 在函数结束时,已验证和未验证的电子邮件都将作为对象的一部分返回。这意味着该函数会公开有关未经验证的电子邮件的信息,如果处理不当,可能会导致安全问题。

绕过 Mozilla 中的电子邮件验证

验证令牌在响应中泄露

正如我们所看到的,没有对未经验证的电子邮件返回的数据进行验证。当我访问此终端节点时,我发现验证令牌在那些未经验证的电子邮件的响应中泄露了。来吧!

绕过 Mozilla 中的电子邮件验证

验证电子邮件端点

我能够获取该验证令牌,并在验证电子邮件端点中使用它来确认电子邮件。现在,我可以轻松监控我想要的任何电子邮件,而无需电子邮件所有者的任何许可,多亏了这个错误配置:))

绕过 Mozilla 中的电子邮件验证

绕过 Mozilla 中的电子邮件验证

该电子邮件已经过验证,现在可以对其进行监控 :))

绕过 Mozilla 中的电子邮件验证

通过删除未使用的 API 端点 /user/breaches API GET 端点修复了漏洞

绕过 Mozilla 中的电子邮件验证

提交报告时间:2024 年 9 月 11 日

待定计划审查:2024 年 9 月 12 日

分类为媒介:2024 年 9 月 12 日

赏金奖励:2024 年 9 月 23 日

已解决:2024 年 11 月 19 日

结论

总之,Mozilla 的 Monitor 产品中的这个漏洞凸显了彻底测试业务逻辑和访问控制的极端重要性。通过源代码审查,我发现了一个函数中的一个缺陷,该缺陷允许我绕过电子邮件验证,这表明即使是很小的疏忽也可能导致重大的安全风险。Mozilla 对此问题的迅速响应反映了他们对用户安全的坚定承诺。我希望这篇文章能强调细致的代码分析和强大的安全测试在识别和缓解此类漏洞方面的价值。

其它相关课程

绕过 Mozilla 中的电子邮件验证

绕过 Mozilla 中的电子邮件验证

绕过 Mozilla 中的电子邮件验证

绕过 Mozilla 中的电子邮件验证

详细目录 

QT开发底层原理与安全逆向视频教程

绕过 Mozilla 中的电子邮件验证

  • 绕过 Mozilla 中的电子邮件验证

  • 绕过 Mozilla 中的电子邮件验证

linux文件系统存储与文件过滤安全开发视频教程(2024最新)

绕过 Mozilla 中的电子邮件验证

linux高级usb安全开发与源码分析视频教程

绕过 Mozilla 中的电子邮件验证

linux程序设计与安全开发

绕过 Mozilla 中的电子邮件验证

  • windows恶意软件开发与对抗视频教程

  • 绕过 Mozilla 中的电子邮件验证

  • 绕过 Mozilla 中的电子邮件验证

  • windows

  • 绕过 Mozilla 中的电子邮件验证

  • windows()

  • 绕过 Mozilla 中的电子邮件验证

  • USB()

  • 绕过 Mozilla 中的电子邮件验证

  • ()

  • 绕过 Mozilla 中的电子邮件验证

  • ios

  • 绕过 Mozilla 中的电子邮件验证

  • windbg

  • 绕过 Mozilla 中的电子邮件验证

  • ()

  • 绕过 Mozilla 中的电子邮件验证绕过 Mozilla 中的电子邮件验证绕过 Mozilla 中的电子邮件验证

  • 绕过 Mozilla 中的电子邮件验证

  • 绕过 Mozilla 中的电子邮件验证

  • 绕过 Mozilla 中的电子邮件验证

原文始发于微信公众号(安全狗的自我修养):绕过 Mozilla 中的电子邮件验证

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月29日00:11:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   绕过 Mozilla 中的电子邮件验证https://cn-sec.com/archives/3443118.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息