摘要: 某日表哥丢过来一个链接,说可以查到手机号或者邮箱号下面注册过的账号,于是有了下面的分析。由于涉及隐私,以下文章中涉及电话号码的部分我已作了隐藏,还有批量利用脚本就不放出来了,敬请见谅。
首先打开表哥给的网址看看,和表哥描述的一样,输入我的手机号看看。
因为没有注册,所以只能查看有限的条数,但我确实注册过途牛旅游,我换了朋友的手机号和邮箱,把反馈结果给他们看,结果也是准确的。这就很有意思了,激发起来我探索的兴趣。
基于现有的信息,这么准确的结果,我们不难分析出其中的奥妙。
1、各大网站提供给数据接口的API给它
2、自己强大的社工库
先分析第一条:各大网站一般不会轻易把数据接口的API给第三方使用,用户基数越大,用户数据一旦泄漏,企业所承担的责任也越大,最近Facebook的数据泄漏事件就是一个很好例子,成本远大于收益,这条pass掉。
再分析第二条:在网络安全法没有出来之前,这个还有可能,之前能用的社工库都死的差不多了,要不就是架设在内网,通过隧道去访问,这是其一。其二是这么准确的数据,是社工库的话数据得源源不断的更新,并且肯定会有查不全的情况,这与我们所掌握的信息矛盾,也得pass掉。
至此思绪又陷入僵局,思路全部都被pass掉,难道我们就此停下了脚步?不存在的。灵感这东西,就和女人的第六感一样神秘又难以琢磨,有时候还真的挺准。
一条合理的解释:我们在注册一个账号时,服务器都要检测我们将要注册的用户名是否被注册过,现在基本都是ajax,我们输入用户名,可以在不提交表单的情况下返回用户名的状态,此举很大程度上方便了正常业务需求的用户,如果用户名存在,用户不用在提交表单时发现,而重新输入之前所填写的信息。但在方便用户但同时,也方便了“其他人”。
首先打开途牛注册界面,抓包看看请求信息。
可以看出确实可行,在一个样本得到验证后,我们不难想到:如果抓到其它app或者网站验证注册的请求,修改其中参数为所查询的账号/邮箱,并且把结果总结呈现到前端,不就是我们之前所看到的结果了吗。
这个推论成立的前提是其它一些网站/app也是这样的业务逻辑,于是我们再选一个有说服力的例子来看看。
我们来到163邮箱的注册页面,重复之前的操作,来看看抓包的内容及响应。
可以看到也是可以实现的。至此,我们所掌握的信息和事实可以大致的相互印证,用户提交查询的数据—>服务器调用封装好的方法来查询—>生成结果—>是否为会员?呈现结果:有限制的展示
接下来就是实践了,看看这种思路,用脚本是否可以实现。
这里因为可能会造成不良的影响,就不放代码了,放一张批量验证的图,验证了10组号码,有趣的是,通过脚本可以看到手机号绑定过的用户还会返回这个手机所绑定邮箱
一个点,很不稳定,但三个点组成三角形,却很牢固。虽然这些操作所得到的结果完全可以一个个的手动试验,单个来看没什么,但如果加以自动化,数据收集涉及网站/app面很广的话,那就可以刻画出用户某种画像,用户的隐私难以得到保证。假设你女朋友有一天闲的无聊,查你手机号,恰好你注册了什么交友网站(此处手动滑稽),还是各大酒店的注册会员……
转载于:https://www.freebuf.com/articles/web/168682.html