首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个关于Facebook用户个人和好友隐私信息泄露的漏洞

一个关于Facebook用户个人和好友隐私信息泄露的漏洞

作者头像
FB客服
发布2018-12-18 16:40:32
7920
发布2018-12-18 16:40:32
举报
文章被收录于专栏:FreeBufFreeBuf

前言

大家好,在我的上一篇文章中,我分享了Chrome浏览器中存在的一个Facebook用户信息泄露漏洞,此后,在接下来的研究中,我又发现了另外一个关于Facebook的漏洞,利用该漏洞,可允许其它网站提取出Facebook受害者用户和其好友的个人隐私信息。

需要说明的是,我于2018年5月发现了该漏洞,出于漏洞影响的严重性,我及时上给了Facebook,并与其安全团队协作进行了缓解开发,最终实现了成功修复。由于该漏洞还暂未完全公开,以下内容只针对漏洞原因和危害作出解释。

漏洞发现

在之前对Chrome浏览器的研究过程中,我认真浏览了Facebook的一些在线搜索结果,我注意到,在其每个在线搜索结果的HTML里,都会包含一个iframe元素,这个iframe元素很可能是Facebook用来进行内部跟踪的标记。因为我自己对iframes的一些特别跨域行为(cross-origin)算是有些了解,于是,我想到了以下测试技巧:

首先,让我们来看一下Facebook中内置的搜索功能页面,该功能有一个后端接口,用来接收一些搜索参数的GET请求,像大多数搜索接口一样,这里接口后端没有设置跨站请求伪造(cross-site request forgery,CSRF)保护机制,也就是说,用户可以通过URL来共享搜索结果页面。

大多数情况下,我们的Facebook用户是不会围绕这个搜索接口来执行多种操作的,当然,也就发现不了这背后的CSRF攻击。但事实是,与大多Web元素不同,iFrame会部份曝露于一些跨域文档中(cross-origin document),与搜索式的CSRF问题一结合,就会发现其中存在的漏洞问题。

以下是一个漏洞验证PoC视频,结合Facebook中的搜索接口,利用漏洞,我可以发现Facebook受害者 用户对其他Facebook用户主页的点赞情况:

演示视频:

漏洞利用过程

要使这种攻击有效,我们需要欺骗Facebook受害者用户去打开我们的构造的恶意网站,让他点击网站上的任何地方,这种地方可以嵌入一些JavaScript脚本进行迷惑,之后,用构造成型跳出的Facebook搜索页面弹出窗或新标签,引诱用户执行我们想要的任何搜索查询结果。

因为页面中iframe元素的个数代表了搜索结果数量,这样的话,我们可以调用访问fb.frames.length接口属性,对iframe执行一个简单的记数。

通过操纵Facebook的图谱搜索(Facebook’s Graph Search)功能,我们可以构造一些反映Facebook受害者用户的个人隐私信息搜索请求。

Facebook’s Graph Search:为Facebook的图谱搜索功能,并不是图片搜索的意思,这是Facebook于2013年初推出并加入的新型搜索功能,与常规搜索引擎的关键词搜索不同,Graph Search能够判断用户希望获取的信息,直接向用户提供有关人、照片、地方和兴趣等问题的答案。Facebook的图谱搜索算是一种社交图谱搜索。 比如,针对英文版Facebook的图谱搜索场景,在漏洞利用中,我用“pages I like named Imperva”搜索一些目标Facebook受害者用户赞过的主页用户,通过伪造带有迷惑性质的POC页面,引诱受害者用户执行搜索,返回我们想要收集的信息,这样就可以间接对其个人隐私的窃取。

延伸利用

类似的构造搜索,我们还可以构造诸如窃取Facebook受害者用户好友信息的操作,例如,用“my friends who like Imperva”的构造搜索,来查看受害者用户列表中点赞过Imperva主页的好友有哪些。当然,其它有意思的构造搜索如下:

查看当前Facebook受害者是否有来自以色列的好友: https://www.facebook.com/search/me/friends/108099562543414/home-residents/intersect 查看当前Facebook受害者是否有名为“Ron”的好友: https://www.facebook.com/search/str/ron/users-named/me/friends/intersect 查看当前Facebook受害者是否在某国或某个地方拍了照片: https://www.facebook.com/search/me/photos/108099562543414/photos-in/intersect 查看当前Facebook受害者是否有伊斯兰朋友: https://www.facebook.com/search/me/friends/109523995740640/users-religious-view/intersect 查看当前Facebook受害者是否有伊斯兰朋友且住在英国 https://www.facebook.com/search/me/friends/109523995740640/users-religious-view/106078429431815/residents/present/intersect 查看当前Facebook受害者是否在朋友圈发布了包含某个特定词汇的帖子: https://www.facebook.com/search/posts/?filtersrpauthor=%7B%22name%22%3A%22author_me%22%2C%22args%22%3A%22%22%7D&q=cute%20puppies 查看当前Facebook受害者是否有朋友,在朋友圈发布了包含某个特定词汇的帖子:https://www.facebook.com/search/posts/?filtersrpauthor=%7B%22name%22%3A%22author_friends%22%2C%22args%22%3A%22%22%7D&q=cute%20puppies

由于攻击者可以通过运行以下代码来控制Facebook的窗口位置属性,所以,无需打开新的弹出窗口或标签即可重复构造搜索过程:

对适用场景来说,这种攻击对移动端用户的潜在威胁可能较大,因为移动端的搜索标签可能很容易被用户在后台忽略或丢失,这样就会让攻击者执行多种组合构造搜索,当用户在观看手机视频或阅读文章时,个人隐私信息就被攻击者悄悄窃取。

总结

简而言之,该漏洞暴露了Facebook受害者用户及其朋友的兴趣和活动相关信息,即使Facebook受害者用户在其隐私设置中,设置此类信息只有自己或朋友可见,这种攻击仍然有效。

*参考来源:imperva,clouds编译,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 漏洞发现
  • 演示视频:
  • 漏洞利用过程
  • 延伸利用
  • 总结
相关产品与服务
Prowork 团队协同
ProWork 团队协同(以下简称 ProWork )是便捷高效的协同平台,为团队中的不同角色提供支持。团队成员可以通过日历、清单来规划每⽇的工作,同时管理者也可以通过统计报表随时掌握团队状况。ProWork 摒弃了僵化的流程,通过灵活轻量的任务管理体系,满足不同团队的实际情况,目前 ProWork 所有功能均可免费使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档