扫码领资料
获网安教程
文章来源: https://medium.com/@bilalresearcher
这个漏洞是关于我如何能够通过使用大多数组织未实现的新功能而无需任何交互即可接管任何用户帐户。让我给你一个关于目标及其功能的良好理解。
假设目标是target.com,这是一个视频学习平台,您可以在其中上传有关任何课程或培训的视频并将其与公众、私人甚至任何电子商务目的共享。目标具有许多不同的功能,包括团队管理和邀请用户加入团队。因此,一旦我们邀请某人加入我们的团队。我们也可以编辑该用户的信息并更改密码。
需要注意的一件重要事情是,每当创建新用户时,都会分配一个唯一的用户 ID,该 ID 实际上是连续的,很容易猜到。他们实施这一措施是因为用户会分享他们的视频,并且为了让这个过程变得简单,便于记住个人资料链接。
所以你们肯定都知道,只要有邀请用户功能和团队管理功能。我们甚至可以管理和编辑受邀用户的信息,有时还可以更改他们的密码。但这里有一个额外的功能,即“复制重置密码链接”。此按钮的作用是复制该受邀用户的重置密码链接。这就像使用密码重置功能一样,但在这里团队经理可以复制其受邀用户的重置密码链接。
后端到底发生了什么?当我们点击该按钮时,会向服务器发送一个请求,要求该用户的重置密码链接,服务器会响应该链接,然后将其复制到我们的剪贴板中。
区别 :
你肯定在想,这个功能和普通的密码重置功能有什么区别?主要的区别在于,当我们使用密码重置功能时,服务器只响应“密码重置链接已通过电子邮件发送”。但在这个端点中,链接是由服务器在响应中发送的。我立即想到,这可能是一个存在漏洞的情况。
方法论:
我记下了一些我认为可能有帮助的东西,例如一些用户(受邀用户和非受邀用户)的用户 ID 以及我们点击复制密码重置链接时的请求。它看起来像这样
请求地址是:target.com/json/reply/GetResetPasswordLinkRequest?userid=<id>。
起初,我考虑将用户 ID 参数更改为其他人的用户 ID 参数,即不是受邀用户而是非受邀用户或其他管理员的用户 ID。
我更改了请求中的用户 ID 并发送了请求。我以为它应该会抛出未授权错误,但它却向我发送了密码重置链接作为响应。
未经授权更改用户 ID 时的响应
这只是通过用户 ID 进行的帐户接管。我想尽快使用此链接并展示完整的影响。但是当我打开链接、输入新密码并单击提交时,它显示了一个错误。
接下来是重要的部分:
出现该错误后,研究人员通常会转向其他方法或测试其他功能,认为这不起作用。但我尝试使用旧密码登录受害者帐户……结果它实际上显示了错误的密码。
我立即在链接中输入了我使用的新密码,登录成功了。那么究竟发生了什么?即使密码重置链接显示此错误,密码实际上是在后端更改的。只是前端出现了这个错误。
我立即更改该平台上其他帐户的密码,因为用户 ID 是公开的。我实际上能够更改组织发布博客内容的博客帐户的密码,并以这种方式展示了危害。
提示和要点:有时即使出现错误,也要始终重新验证您尝试进行的更改。如果不进行验证,我们可能会错过很多东西。
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):复制密码重置链接漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论