如何通过BAC绕过邀请流程,并获得管理员权限的

admin 2025年6月3日15:54:02评论35 views字数 1031阅读3分26秒阅读模式

大家好!

在这篇技术分享中,我将分享我如何在一个Web应用程序中发现了一个BAC的漏洞。这个漏洞让我成功获取了一家公司的完整管理员权限——即便我的邀请已经被禁用了。

首先,我们来了解一下这个APP是怎么工作的。

APP中的正常用户流程是这样的:

  1. 你创建一个账户。
  2. 你创建一个公司。
  3. 你可以邀请其他人加入你的公司(可以指定为管理员或员工)。
如何通过BAC绕过邀请流程,并获得管理员权限的
  1. 被邀请的用户会收到一封包含加入链接的邮件。 
  2. 一旦他们接受邀请,他们就加入了你的公司。 

如何通过BAC绕过邀请流程,并获得管理员权限的

如果你是公司所有者,你可以在对方接受邀请之前禁用该邀请。 

如何通过BAC绕过邀请流程,并获得管理员权限的

 一旦禁用,如果被邀请的人点击他们的链接,他们会看到这个: 如果他们登录后尝试手动切换到该公司,同样会遇到错误。 

如何通过BAC绕过邀请流程,并获得管理员权限的

到目前为止,一切看起来都很稳固。前端正在尽职尽责。但这时,我冒出了一个念头…

如果我直接和后端“对话”呢?

在使用 Burp Suite 把玩这个应用时,我注意到了一些东西:

该应用使用经典的 Authorization: Bearer <token> 请求头来验证你是否已登录以及你能做什么。 

如何通过BAC绕过邀请流程,并获得管理员权限的

“如果我直接用我的 token 手动发送 API 请求呢——即使我的邀请已经被禁用了?”

于是,我动手尝试了。

以下是我的操作步骤:

  1. 创建了两个账户:账户 A(公司所有者),账户 B(攻击者)。
  2. 从账户 A,我邀请账户 B 作为管理员。
  3. 在我(账户B)接受邀请之前,我登录了账户 A 并禁用了该邀请。
  4. 然后我以账户 B 登录,打开 Burp Suite,并获取了我的 Authorization token。
  5. 我开始直接捣鼓 API 调用——不通过前端。

结果你猜怎么着?

它成功了。它居然TMD成功了!

如何通过BAC绕过邀请流程,并获得管理员权限的

我能够:

  • 访问该公司
  • 邀请新用户
  • 移除现有成员
  • 重新邀请我自己
  • 基本上就像一个拥有完整权限的管理员一样操作

为什么会这样?

后端只检查了 token 是否有效,以及用户是否在邀请列表中。

它并不关心我是否已经接受了邀请。它也不关心邀请是否已被禁用。

只要你有一个有效的 token + 你在邀请列表中 = 你就进去了。

这就是一个典型的Broken Access Control漏洞。

所以我把这个漏洞提交给了他们的项目,他们成功复现了问题,漏洞也得到了分类处理。 

如何通过BAC绕过邀请流程,并获得管理员权限的

====本文结束====

以上内容由漏洞集萃翻译整理。

参考:

https://medium.com/@yassentaalab51/bypassed-the-invite-flow-gained-admin-access-d37347d57468

原文始发于微信公众号(漏洞集萃):如何通过BAC绕过邀请流程,并获得管理员权限的

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

发表评论

匿名网友 填写信息