今年4月,由于某些原因我辞职在家,无聊之余就在Hackerone上学习。也就是这么几天,我参加了Hackerone的众测项目,发现了Mail.ru子域名网站cups.mail.ru的一个密码重置型账户劫持漏洞,有点意思,分享在此。
正常的密码重置应用流
当用户重置自己的密码时,他需要点击以下密码重置链接,并在其中填入自己的绑定邮箱:
https://cups.mail.ru/faq/restore-password/restore?step=1
当用户输入自己的绑定邮箱,点击提交之后,用户邮箱中就会收到mail.ru发送来的一次性OTP密码,同时,页面也会跳转到以下OTP输入验证链接:
https://cups.mail.ru/faq/restore-password/restore?step=3
在此,用户输入有效的OTP密码,并跳转到密码重置页面:
https://cups.mail.ru/faq/restore-password/restore?step=4
之后,用户就能成功重置密码,且会在重置请求中包含了以下内容:
{“password”:”password”,”email”:”[email protected]”,”code”:”onetimepassword”}
对密码重置功能的利用
经测试分析,由于上述密码重置功能缺乏权限限制,因此,我可以用它来重置任意用户密码。首先,我访问以下密码重置链接:
https://cups.mail.ru/faq/restore-password/restore?step=4
其中的原始重置请求为:
{“password”:”password”,”email”:”[email protected]”,”code”:”onetimepassword”}
然后,我把该请求内容更改为以下受害者邮箱字段:
{“password”:”reset”, “email”: “[email protected]”}
就像下图这样:
转发请求之后,页面就跳转到了以下这个提示重置成功的链接:
https://cups.mail.ru/faq/restore-password/restore?step=5
我被惊到了,这样也行?!之后,我尝试用受害者邮箱进行登录,但提示密码已被重置。我仔细观察,发现该重置成功提示页面中还存在一个提示:Now you can to come in on Cups!其中to come in为可点击按钮:
点击之后,我就成功地进入到了受害者的Cups账户中了!
总结
不明白Mail.ru在后台的这种密码重置逻辑,但总的来说,其请求实现和点击to come in的功能中存在安全缺陷,需要做进一步的用户身份验证。漏洞上报后,收获了Mail.ru的$1500奖励:
参考来源:medium
来源:freebuf.com 2020-08-10 17:48:30 by: clouds
请登录后发表评论
注册