这行得通吗?显示点击特制链接的人的身份(facebook)

信息安全 社会工程学 Facebook
2021-09-09 13:49:36

有一个特殊的 Facebook 链接,可以将点击它的任何人重定向到他们当前在浏览器上登录的自己的 Facebook 个人资料。链接是这样的: http: //www.facebook.com/profile.php?= 743264506(顺便说一下,这个链接是无害的,如果你不确定,你可以谷歌它)

我怀疑这可以通过向他们发送一个特制的链接来揭示一个人的身份。我不是程序员,但这是我的想法:

  1. 创建一个网站,链接到您想要透露其身份的人。
  2. 该网站包含一些巧妙的重定向或解析脚本,从这个特殊的 Facebook 链接中吸收数据,然后将其发送回服务器(攻击者)。

这在技术上可行吗?

4个回答

与其他答案相反,实际上是的,这是可能的。然而,它实际上并不是那么简单,也不完全像你所说的那样。

  1. 您可以将他发送到您的Facebook 应用,而不是将您的受害者引导至个人资料。当然,这个应用程序需要注册为有效的脸书应用程序等等。
  2. 在应用程序的 URL 中,您可以提交某些参数 - 例如,用户在您自己网站上的当前会话 ID。
  3. 请注意,此 URL 指向Facebook,因此您的 FB cookie 将被发送,因为它是 FB 的服务器;然后他们将请求转发到您的应用程序。
  4. 您的 Facebook 应用程序应该托管在您自己的服务器上,并且这应该与您的受害网站进行某种形式的通信,允许在 Facebook 身份和会话 ID 之间进行查找。
  5. 因此,您只是无意中将 Facebook 用作身份提供者。
  6. 使用某些附加技术,例如CSRF,您可以直接自动发送用户,只需在您的站点上即可。
  7. 但是请注意,这实际上并不像以前那么简单,这就是社会工程学发挥作用的地方:Facebook 现在需要明确的用户批准才能允许应用访问您的详细信息。
  8. 另一方面(我承认我在这方面可能已经过时了——很难跟上 Facebook 的一致性)——应用程序在要求你安装它之前就可以收到一些细节。(我不会在这里讨论所有这些技术细节,我认为这在这一点上是无关紧要的,并且可能会跑题。)

您可以在几年前的这篇博文中找到更深入的细节,包括所有技术细节;正如我所说,其中一些可能已经过时了。
(披露:我确实协助了一些研究)。

简短的回答是否定的,这不会按照您的意愿工作。

要了解原因,您首先需要了解 Facebook 如何让您获得正确的个人资料。在客户的浏览器中有 Facebook 用来识别其帐户的 cookie。因此,当客户端访问该链接时,Facebook 会读取客户端浏览器上的 cookie 并将它们带到正确的个人资料页面。

对我们来说幸运的是,cookie 仅对发布域可用。这意味着当用户访问您假设的网络钓鱼页面时,恶意页面将无法读取您的 Facebook cookie。

不,这是不可能的。否则https://facebook.com也会暴露你的身份:它会打开一个页面,上面有你的名字以及你的信息流中的所有内容。

您正在考虑的事情可以通过跨站点脚本攻击来完成。这会将脚本注入到页面中,该脚本可以对网站进行任何操作。它可以将收集到的信息发送给攻击者,为您发布消息等。

Facebook 目前尚不知道易受跨站点脚本攻击。修补此漏洞非常容易,因此如果发现此类漏洞,它将在发现后的一两个小时内消失(实时推送更新需要一段时间)。同时,他们可以关闭网站的那部分。

供您参考,攻击 URL 的示例可能是:https://example.com/search?q="><script src="attack.js"></script>为了掩盖这一点,攻击者可能会对其进行编码:

https://example.com/search?q=%22%3e%3c%73%63%72%69%70%74%20%73%72%63%3d%22%61%74%74%61%63%6b%2e%6a%73%22%3e%3c%2f%73%63%72%69%70%74%3e

这种攻击可以在 Facebook 本身不存在漏洞的情况下执行的唯一方法是,当页面通过 HTTP(不是 HTTPS)加载并且攻击者可以控制连接(例如在公共 WiFi 网络上),或者当您使用旧浏览器时例如 Internet Explorer 6。或相关的东西,如 Flash Player 非常旧,或者您感染了病毒......但这些都是外部因素,而不是您描述的方式中的漏洞(通过特制的 url 找到身份或页)。

该链接只是在链接 facebook.com/profile.php 中添加的随机数。如果您单独粘贴此链接,它会将您重定向到您的个人资料,因此除此之外的数字只是一个随机数字。