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

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

黑客们,大家好!
今天,我很高兴与大家分享我在公共 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

其它相关课程

图片

图片

图片

图片

rust语言全栈开发视频教程-第一季(2025最新)

图片

图片

图片

详细目录

mac/ios安全视频

图片

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

图片

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

图片

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

图片

linux程序设计与安全开发

图片

 

 

  • 图片

  • windows网络安全防火墙与虚拟网卡(更新完成)

  • 图片

  • windows文件过滤(更新完成)

  • 图片

  • USB过滤(更新完成)

  • 图片

  • 游戏安全(更新中)

  • 图片

  • ios逆向

  • 图片

  • windbg

  • 图片

  • 还有很多免费教程(限学员)

  • 图片

    图片

    图片

  • 图片

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

  • 图片

  • 图片

  • 图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C-haidragon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值