挖洞经验 | Mail.ru子域名网站的密码重置型账户劫持漏洞 – 作者:clouds

图片[1]-挖洞经验 | Mail.ru子域名网站的密码重置型账户劫持漏洞 – 作者:clouds-安全小百科

今年4月,由于某些原因我辞职在家,无聊之余就在Hackerone上学习。也就是这么几天,我参加了Hackerone的众测项目,发现了Mail.ru子域名网站cups.mail.ru的一个密码重置型账户劫持漏洞,有点意思,分享在此。

正常的密码重置应用流

当用户重置自己的密码时,他需要点击以下密码重置链接,并在其中填入自己的绑定邮箱:

https://cups.mail.ru/faq/restore-password/restore?step=1

图片[2]-挖洞经验 | Mail.ru子域名网站的密码重置型账户劫持漏洞 – 作者:clouds-安全小百科当用户输入自己的绑定邮箱,点击提交之后,用户邮箱中就会收到mail.ru发送来的一次性OTP密码,同时,页面也会跳转到以下OTP输入验证链接:

https://cups.mail.ru/faq/restore-password/restore?step=3

图片[3]-挖洞经验 | Mail.ru子域名网站的密码重置型账户劫持漏洞 – 作者:clouds-安全小百科

在此,用户输入有效的OTP密码,并跳转到密码重置页面:

https://cups.mail.ru/faq/restore-password/restore?step=4

图片[4]-挖洞经验 | Mail.ru子域名网站的密码重置型账户劫持漏洞 – 作者:clouds-安全小百科

之后,用户就能成功重置密码,且会在重置请求中包含了以下内容:

{“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]”}

就像下图这样:

图片[5]-挖洞经验 | Mail.ru子域名网站的密码重置型账户劫持漏洞 – 作者:clouds-安全小百科

转发请求之后,页面就跳转到了以下这个提示重置成功的链接:

https://cups.mail.ru/faq/restore-password/restore?step=5

我被惊到了,这样也行?!之后,我尝试用受害者邮箱进行登录,但提示密码已被重置。我仔细观察,发现该重置成功提示页面中还存在一个提示:Now you can to come in on Cups!其中to come in为可点击按钮:

图片[6]-挖洞经验 | Mail.ru子域名网站的密码重置型账户劫持漏洞 – 作者:clouds-安全小百科
点击之后,我就成功地进入到了受害者的Cups账户中了!

总结

不明白Mail.ru在后台的这种密码重置逻辑,但总的来说,其请求实现和点击to come in的功能中存在安全缺陷,需要做进一步的用户身份验证。漏洞上报后,收获了Mail.ru的$1500奖励:

图片[7]-挖洞经验 | Mail.ru子域名网站的密码重置型账户劫持漏洞 – 作者:clouds-安全小百科

参考来源:medium

 

来源:freebuf.com 2020-08-10 17:48:30 by: clouds

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论