原文:
https://infosecwriteups.com/third-party-apps-were-still-getting-your-private-facebook-data-even-after-their-access-expiry-6e4be4880e6e
大家好, 我是尼泊尔的Samip Aryal,这篇文章涉及一个漏洞,该漏洞导致第三方应用程序的访问(通过“使用Facebook登录”功能获得的访问权限)没有适当地过期(即使在闲置90天之后),类似地查找给用户的朋友时。
具体来说,如果目标用户的应用程序访问权限已到期,而源用户的应用程序访问权限尚未到期,则Facebook仍会将有关目标用户的数据返回给第三方应用程序。
(人话:之前用某app授权了微信,可以看到好友列表以及最近动态,现在不用了删了,但是别人还是能看到我的好友列表和最新动态。)
大约一年前;当我随机浏览一个名为“ Smule”的应用程序(用户可以在其中进行卡拉OK)时,我访问了该应用程序内的“ Facebook朋友”部分,其中显示了也在使用该应用程序,并且还提供了该应用程序的朋友的列表。通过“使用Facebook登录”功能从其Facebook帐户获取,到该第三方应用程序(即Smule)的所需访问权限(电子邮件,朋友列表数据)。
所以,当我看着朋友的名字时,我得到了我最近的一位朋友叫普拉比(Prabesh)的个人资料。我点击并打开了他的Smule个人资料,在那里看到他的最新二重奏大约是在两年前。
此外,在此之前,他曾连续进行过几次二重唱。这表示,在他出版的每个二重奏周期之间都有相似的细微差距,但是大约在两年前,这个差距从那里突然中断了。所以,最近一段时间,我在该应用程序中没有看到他的任何形式的互动。因此,我预计可能由于超过90天的不活动状态,他的Smule帐户的Facebook帐户访问权已过期。
突然间,令我兴奋的是,大约一周前,我们在Facebook上成为了朋友。所以, 我像:

因此,我急切地要求Prabesh打开他Facebook账户内的“应用程序和网站”安全设置到“过期”部分。他发给我的截图是:

看到这个,我:

你可能会问:“为什么……我的意思是,这些东西有啥用?”
好吧,看看截图图片的顶部。你可以清楚地看到这样的指示:
这些都是你用Facebook登录过的应用程序和网站。他们可以接收你选择与他们分享的信息。过期或已被删除的应用程序可能仍能获取之前分享过的信息,但它们无法获得额外的非公开信息。
你们中的一些人可能已经知道什么是可疑的了。仍然;让我用这个指示性的事件流来说明:
UserA > >给他数据访问包括私人朋友列表数据通过与Facebook登录的第三方应用程序功能> >停止使用第三方应用程序> >超过90天的通行证> >访问第三方应用到期> >现在,它不应该得到任何新的私人数据从UserA的Facebook账户> >,UserA与UserB成为朋友>> UserB在同一个第三方应用程序>>中打开他的帐户,UserB在“同样使用这个应用程序的Facebook好友”列表中看到UserA
这一系列事件让我产生了一个问题:
第三方应用程序如何显示UserA UserB的朋友列表内应用,他是读取了UserB的数据确定是朋友吗?
为此,我创建了两个虚拟Facebook账户,用于登录第三方应用程序。两个用户帐户不是彼此好友。然后,我从第一个Facebook账户转到了安全设置中的“应用程序和网站”部分。我去除了活跃应用区,点击第三方应用侧的“编辑”选项,关闭向该应用提供额外好友列表数据的选项。现在,我在Facebook上把两个用户账号都加了好友。
现在,看看这个设置环境,它与过期的情况有相同的类比,第三方应用程序只从一个用户获得朋友列表数据,但没有从另一个用户。
所以,我去了第三方应用程序的“Facebook好友”部分,并惊讶地看到这一次,第三方应用并没有在应用内部的“Facebook好友列表”部分显示对方,即使它仍然从包含第一个用户的列表中的第二个用户帐户获得好友列表数据。
因此,我很满意地看到我关于这个工作流算法的预测假设实现了,因为现在我可以肯定,第三方应用需要来自两个用户的Facebook账户的好友列表数据,来确认好友关系,包括每个用户的好友列表中的对方。简而言之,经证实,第三方应用程序仍然从用户的脸书帐户获取私人数据,即使在其授权过期之后。
本文迁移自知识星球“火线Zone”