本文中,作者针对同性社交应用Grindr,测试其密码重置功能,发现其服务端不当地返回了密码重置令牌resetToken,通过简单地复制该resetToken加上用户注册邮箱地址,即能以URL链接方式重置他人Grindr账户密码,实现完全账户劫持。
社交应用Grindr
性、亲密关系和网上约会都是相当私人的事情,它们是我们生活中的一部份,许多人选择保密,或者选择与特定人分享。Grindr是世界上最大的同性恋、双性恋、变性人和跨性别主义者的社交网络应用,因此,它的用户群体信息也是极为敏感的。因为通过该APP的用户信息,不仅可以判断某人的性取向,如果出现信息泄露还可产生严重的伦理后果。
漏洞发现背景
早几天,Twitter上的一位安全圈朋友发私信给我诉说了他上报Grindr漏洞的遭遇,他说曾向Grindr上报了一个严重的账号劫持漏洞,他曾把所有的漏洞细节都发给了Grindr,但Grindr方面却选择视而不见,充耳不闻。
这位朋友没办法了,找到我,希望我能公布该漏洞。他给了我具体的漏洞细节,从漏洞表面上来看,漏洞利用非常简单,只需一个小小的技巧就能实现账号Grindr劫持。接下来,我想进行一些验证性测试,为了省去注册麻烦和隐私安全,于是,我找到了朋友Scott Helme,问他是否有Grindr账号。
Scott也是一位出色的信息安全专家,几年前,我们曾一起合作发现了影响全球Nissan汽车铃风LEAF的安全漏洞。我的帮助消息发出分分钟后,Scott就帮我注册了一个Grindr账号,绑定邮箱为[email protected]。
账号劫持验证
漏洞源于以下Grindr的密码重置功能,让我输入绑定的注册邮箱号:
我输入了[email protected],过了一道验证码之后,就发现了以下服务端响应:
从上图可以看出,在谷歌浏览器的开发者模式下,Grindr就这样返回了账户为邮箱[email protected]的密码重置令牌resetToken。就这样,我简单地把该resetToken和绑定邮箱构造成以下URL链接:
这对大多数人来说都非常容易构造,当在浏览器中访问该URL链接之后,就会成功跳出了以下密码重置界面:
成功修改密码:
并可以成功登录:
需要APP登录,好吧:
可以了:
就这样实现了完全的账号劫持,我可以访问该Grindr账号的所有个人资料信息:
还能收到该账号的交流私信:
我想到了几年前Grindr被曝把其掌握的用户HIV隐私数据泄露给了第三方机构,再想想这个漏洞,这简直不可思议。最后,我还成功登录了该账号的Grindr网友版:
这就是一个最基本的账号劫持漏洞,只需知道目标账号的绑定邮箱即可。为什么Grindr服务端会返回不恰当的resetToken,让我匪夷所思,漏洞利用门槛如此之低让我吃惊。
联系Grindr
之后,我尝试在Twitter朋友圈试图联系Grindr。这样公开的发推,间接说明了Grindr存在网络安全问题,希望能引起注意。之后,我又与Grindr的官方推特号进行了私信:
但最终这些信息好像都石沉大海。之后,我直接在Twitter中转发了该漏洞报告,并让朋友们相互转发,一个半小时后,Grindr存在漏洞问题的服务下线了,之后即被快速修复了。经过我这种通过安全圈朋友联系到Grindr的方式后,Grindr的响应速度堪称之快。但之前,Grindr,你们人去哪了?总之,现在漏洞已修复,我相信Grindr会在安全方面投入更多精力。我呢,也交到了一些新朋友。
参考来源:
来源:freebuf.com 2020-10-12 17:42:28 by: clouds
请登录后发表评论
注册