介绍
Gmail允许其来自世界各地的用户使用多个电子邮件地址,并将其关联或链接到Gmail。同时Gmail允许您设置转发地址,以便您收到的电子邮件也发送到您已设置转发的电子邮件。这两个模块实际上存在身份验证或验证绕过漏洞。它类似于帐户接管,在这里,我作为一个攻击者可以通过确认电子邮件的所有权劫持电子邮件地址,并能够使用它发送电子邮件。
技术细节
如果点击Gmail中gear按钮,将看到两个模块,其中一个名称为”Account and Import”,”Send Mail As”和转发模块受到影响。这是一个逻辑漏洞,允许我从Gmail中劫持电子邮件地址。与Gmail SMTP关联或连接的任何Gmail地址都容易受到此安全问题的影响。它可能是@gmail.com、@googlemail.com或@ googleemail.com等。我们知道Gmail给我们关于邮件传递的报告,比如电子邮件发送或不,接收邮件的电子邮件地址不存在或处于离线状态,Gmail将退回包含“投递状态通知”主题的邮件,其中包含Gmail无法将电子邮件递送给收件人的原因。
要成功劫持电子邮件地址,应该有以下情况之一:
收件人的SMTP离线;
收件人已经停用了他的电子邮件;
收件人不存在;
收件人存在,但已经阻止了我们。
在上述所有情况下,收件人不能从我们的地址接收任何电子邮件,我需要的是邮件退回的通知。电子邮件被退回的原因为你的电子邮件没有提供验证代码和一个完整的消息的激活链接。现在,验证代码可以用来验证和确认电子邮件地址的所有权,这实际上是扼杀了验证的概念。同样的程序也适用于电子邮件转发模块,我也发现它存在的漏洞。我们所需要的是地址,这个地址不能从我们这边接收到上述情况的电子邮件。
在上面显示的图片中,您可以清楚地看到Gmail如何将包含转发给验证的内容的电子邮件退回给收件人,并包含用于验证以确认所有权的链接和代码。
攻击者可以欺骗受害者停用他的帐户或攻击者也可以诱骗受害者阻止他的电子邮件地址,受害者将无法从外部接收电子邮件。一旦他这样做,我们可以很容易地劫持他的电子邮件地址,因为Gmail 正在退回包含验证码的电子邮件。此外,转发部分还需要确认是否也受到影响。
流程
攻击者尝试确认xyz@gmail.com的所有权
Google会将电子邮件发送到xyz@gmail.com进行确认
xyz@gmail.com无法接收电子邮件,因此电子邮件会退回给Google
Google会向攻击者发送一条失败通知,其中包含验证码;
攻击者获取验证码并确认他对xyz@gmail.com的所有权。
在视频过程中你可以清楚的看到他存在的漏洞:
确认所有权后,我能够使用它发送电子邮件,也可以作为一个别名。