业务逻辑错误导致报告所有者权限未经授权降级

admin 2025年4月9日22:53:17评论7 views字数 2204阅读7分20秒阅读模式

业务逻辑错误导致报告所有者权限未经授权降级

“请注意,请注意,请注意”

黑客们,大家好!
今天,我很高兴与大家分享我在公共 HackerOne 漏洞赏金计划 (BBP)中发现的一个逻辑漏洞,该漏洞导致报告所有者权限被降级,并可能失去管理控制权!

不要浪费时间...让我们开始吧!

业务逻辑错误导致报告所有者权限未经授权降级

关于目标:

目标是提供各种客户服务、销售和营销自动化工具的知名客户参与和业务支持平台。

该平台的主要功能之一允许用户创建用于数据分析和协作的报告。在报告中,报告所有者可以通过分配不同的权限级别与其他用户共享访问权限,例如:

  • 可以管理——完全控制报告,类似于所有者。
  • 可以编辑——可以修改报告,但管理控制能力有限。
  • 可以查看— 只读访问,没有任何修改权限。

出于保密原因(由于该问题仍未得到修补),我们将在本文中将该平台称为Target.com 。

深入研究报告部分

当我开始测试报告部分时,我仔细分析了它的不同功能。这使我专注于共享功能,该功能允许报告所有者与具有特定角色(可以管理、可以编辑和可以查看)的其他用户共享报告。

有权使用Target.com中的SHARE 功能的用户

✔️所有者
✔️可以编辑
✔️可以管理

❌📌具有“可查看”权限的用户无权使用分享功能。

这意味着只有所有者、可编辑和可管理用户才能使用SHARE 功能。记住这一点,让我们来探索如何利用此漏洞来降低所有者的权限

通过拦截共享请求,我发现当与用户共享报告时,他们的名字、姓氏和电子邮件会出现在用户界面 (UI)中,并且没有选项可以UI本身编辑名称。即使在编辑用户设置(使用相同端点)中,唯一可用的操作是:

  • 修改角色
  • 从报告中删除用户
  • 转让所有权

然而,当我分析JSON 请求主体时,我发现了一些有趣的东西:请求中发送了
firstname 、lastname 和 email 参数!

尝试#1——修改用户信息

我想,如果我改变这些参数会怎么样?

  • 我将名字、姓氏和电子邮件的值修改为不同的值。
  • UI 中出现了变化,这意味着系统允许了它!
  • 然而,一旦我刷新页面,值就会恢复到原来的状态

所以我尝试了另一种方法

尝试#2——清除姓名和电子邮件

我没有更改值,而是将名字、姓氏和电子邮件设置为空白(“”)并测试效果:

业务逻辑错误导致报告所有者权限未经授权降级

  • 这些值从用户界面中消失,这意味着用户现在显示的是空的姓名和电子邮件

业务逻辑错误导致报告所有者权限未经授权降级

从 Can-Edit 角度

业务逻辑错误导致报告所有者权限未经授权降级

从 Can-Edit 角度
  • 但再次刷新后,原来的姓名和电子邮件又恢复了

此时,我开始觉得这不会有任何结果......
直到我注意到一些非常奇怪的事情。

意外行为——新的攻击路径

通常,当用户已在报告上共享时,他们的电子邮件不应出现在可再次共享的用户列表中。

但是......在我删除了用户的姓名和电子邮件之后,在“刷新页面之前”,同一个用户突然再次出现在“可用用户”列表中以供共享!

💡 这让我想到了一个有趣的想法💡

EXPLOIT — 降低所有者的级别!

我开始思考......“如果我清除所有者的姓名和电子邮件,然后使用相同的电子邮件但以较低的权限重新共享报告,会发生什么?”

为了测试这一点,我做了以下事情:

1️⃣我修改了所有者的详细信息——我使用拦截的请求将名字、姓氏和电子邮件设置为空白(“”)
。2️⃣在刷新页面之前,我使用所有者的原始电子邮件再次共享了报告,但这次使用的是“可以查看”权限,而不是所有者权限。

业务逻辑错误导致报告所有者权限未经授权降级

从 Can-Edit 角度

猜猜发生了什么?

电子邮件再次成功添加,令人惊讶的是,现在有两个用户使用相同的电子邮件!然而,奇怪的事情发生了——尽管我明确分配了较低的角色,但两个帐户都显示为“所有者”,而不是“仅查看” 。

意想不到的后果

当我切换回原始所有者的帐户时,我注意到一个大问题

  • 所有者的权限被降级,即使他们的角色仍然被标记为“所有者”,但这只是在 UI 中。
  • 几个关键的权限消失了,这意味着所有者失去了对报告的控制权!

事情是这样的:

❌ OWNER 无法再与具有“可管理”“可编辑”角色的用户共享报告。❌仅查看用户无法升级更高角色。❌编辑用户无法提升管理用户。❌如果不存在其他管理用户,整个报告将被永久锁定,无法恢复管理控制权

彻底打破了权限层次结构,允许任何可以编辑或可以管理的用户永久降级所有者的访问权限,从而导致完全失去控制。

业务逻辑错误导致报告所有者权限未经授权降级

从 OWNER 角度看(影响的一件事)

影响:

这意味着具有“可以编辑”“可以管理”权限的攻击者可以利用此逻辑错误彻底剥夺原始 OWNER 的管理权力,从而导致权限永久降级。

尽管系统仍将他们显示为 OWNER,但他们不再具有管理共享设置或修改报告访问级别的权限。如果不存在其他管理用户,则无法恢复对报告的控制。

“一个简单的逻辑缺陷可能会造成巨大的破坏!” ⚠️

我向该计划报告了这个漏洞,经过他们的调查,他们承认了这个问题并奖励了我一笔赏金 — 感谢真主! 🙌💰

业务逻辑错误导致报告所有者权限未经授权降级

希望您觉得我的故事有用!如果有人有任何补充或建议,请访问我的社交媒体帐户 — 如果您能与我联系,我将不胜感激。

[http://github.com/haidragon](https://link.zhihu.com/?target=http%3A//github.com/haidragon)

[http://gitee.com/haidragon](https://link.zhihu.com/?target=http%3A//gitee.com/haidragon)

公众号:安全狗的自我修养

bilibili:haidragonx

原文始发于微信公众号(安全狗的自我修养):业务逻辑错误导致报告所有者权限未经授权降级

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月9日22:53:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   业务逻辑错误导致报告所有者权限未经授权降级https://cn-sec.com/archives/3933237.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息