这个漏洞是关于我如何能够通过使用大多数组织未实现的新功能而无需任何交互即可接管任何用户帐户。让我给你一个关于目标及其功能的良好理解。
假设目标是target.com,这是一个视频学习平台,您可以在其中上传有关任何课程或培训的视频并将其与公众、私人甚至任何电子商务目的共享。目标具有许多不同的功能,包括团队管理和邀请用户加入团队。因此,一旦我们邀请某人加入我们的团队。我们也可以编辑该用户的信息并更改密码。
需要注意的一件重要事情是,每当创建新用户时,都会分配一个唯一的用户 ID,该 ID 实际上是连续的,很容易猜到。他们实施这一措施是因为用户会分享他们的视频,并且为了让这个过程变得简单,便于记住个人资料链接。
所以你们肯定都知道,只要有邀请用户功能和团队管理功能。我们甚至可以管理和编辑受邀用户的信息,有时还可以更改他们的密码。但这里有一个额外的功能,即“复制重置密码链接”。此按钮的作用是复制该受邀用户的重置密码链接。这就像使用密码重置功能一样,但在这里团队经理可以复制其受邀用户的重置密码链接。
后端到底发生了什么?当我们点击该按钮时,会向服务器发送一个请求,要求该用户的重置密码链接,服务器会响应该链接,然后将其复制到我们的剪贴板中。
区别 :
你肯定在想,这个功能和普通的密码重置功能有什么区别?主要的区别在于,当我们使用密码重置功能时,服务器只响应“密码重置链接已通过电子邮件发送”。但在这个端点中,链接是由服务器在响应中发送的。我立即想到,这可能是一个存在漏洞的情况。
方法论:
我记下了一些我认为可能有帮助的东西,例如一些用户(受邀用户和非受邀用户)的用户 ID 以及我们点击复制密码重置链接时的请求。它看起来像这样
请求地址是:target.com/json/reply/GetResetPasswordLinkRequest?userid=<id>。
起初,我考虑将用户 ID 参数更改为其他人的用户 ID 参数,即不是受邀用户而是非受邀用户或其他管理员的用户 ID。
我更改了请求中的用户 ID 并发送了请求。我以为它应该会抛出未授权错误,但它却向我发送了密码重置链接作为响应。
未经授权更改用户 ID 时的响应
这只是通过用户 ID 进行的帐户接管。我想尽快使用此链接并展示完整的影响。但是当我打开链接、输入新密码并单击提交时,它显示了一个错误。
接下来是重要的部分:
出现该错误后,研究人员通常会转向其他方法或测试其他功能,认为这不起作用。但我尝试使用旧密码登录受害者帐户……结果它实际上显示了错误的密码。
我立即在链接中输入了我使用的新密码,登录成功了。那么究竟发生了什么?即使密码重置链接显示此错误,密码实际上是在后端更改的。只是前端出现了这个错误。
我立即更改该平台上其他帐户的密码,因为用户 ID 是公开的。我实际上能够更改组织发布博客内容的博客帐户的密码,并以这种方式展示了危害。
更多网络安全优质免费学习资料与干货教程加
送渗透工具、技术文档、书籍,面试题、视频(基础到进阶。环境搭建,HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等)、应急响应笔记、学习路线。
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。