📜  使用跨站点脚本进行 Cookie 跟踪和窃取

📅  最后修改于: 2021-10-19 05:33:04             🧑  作者: Mango

如何在网站中使用 cookie

cookie 是随机生成的字母数字字符串,在您访问网页时生成,并由该网页发送到您的浏览器,作为您在该网站上的存在记录,以便您在访问该网站时被该网站识别再次因为您之前的会话(称为会话 ID)。但这并不是 cookie 的唯一目的,它们还广泛用于跟踪您的在线偏好,并且它们从一个服务器传输到另一个服务器,并且很容易被拦截和窃取。本文讨论 cookie 如何在网络上移动以及它们如何被盗。

曲奇之路

如前所述,当我们向服务器请求网页时,服务器会联系该站点并将网页呈现给我们的本地机器。在渲染主要是 HTML、CSS 和一些 JavaScript 的网页时,它还会发送一个 cookie(第一方 cookie)来标识会话。
除了网站,当我们访问一个网页时,我们经常会看到很多广告。这些广告实际上不是该网站的一部分,而是从世界各地的不同服务器提供给该网站以换取金钱。每当我们点击这些广告中的一个时,它就会将一个 cookie 发送回其各自的服务器,服务器会存储它以跟踪我们的偏好。服务器还相互通信并形成一个广告网络,共享您的偏好并在将来根据这些偏好向您展示广告。因此,您一直在不知不觉中被多个在线实体跟踪和监视。牢记这一点,欧盟指令通过了一项称为“Cookie 法”的内容,根据该法,网站必须征得您的许可才能使用 Cookie。这就是为什么您会在某些站点上看到一条消息,例如“此站点使用 cookie 来增强用户体验……”请求您的许可。

Cookie 法是一项隐私立法,它要求网站获得访问者的同意,才能在计算机、智能手机或平板电脑上存储或检索任何信息。它旨在保护在线隐私,让消费者了解有关他们的信息是如何在线收集和使用的,并让他们选择是否允许。

饼干盗窃

购物偏好可能不会归类为关于个人的敏感信息,但在线购物车和银行详细信息确实是敏感数据,并且所有这些都可以在会话 cookie 的帮助下被网站记住。如果攻击者设法获取您的会话 cookie,那么该人将能够冒充您和该站点,并可以访问您的银行详细信息和您的亚马逊购物车,并可能从您的亚马逊帐户向他/她订购东西地址花掉你所有的钱。当站点存在漏洞并且攻击者使用称为跨站点脚本 (XSS) 的东西来利用该漏洞时,通常会发生这种情况。这主要出现在编码错误的网站中,在这些网站中,开发人员忘记包含某些安全措施以防止攻击者运行跨站点脚本。

网站如何使用 XSS 窃取 cookie?

我将用一个假设的场景来解释这一点。因此,假设我们访问了一个这样的易受攻击的站点,该站点上有一个评论部分。现在在一个理想的、安全的网站上,评论部分应该只有简单的英文文本,但在不安全的网站上,如果我们在评论部分发布代码,该网站会认为这是来自服务器端的一些代码,它应该运行该代码。


  • 这段代码在评论部分发布时会让浏览器认为它是服务器发送的 Javascript 代码(由于脚本标签),并让它运行它。
  • 当访问该站点的某些用户查看评论部分时,他/她将在评论部分看到指向图像的链接,该链接实际上是脚本运行的结果。
  • 当用户点击这个链接认为它是一个图像(而它实际上是一个PHP文件)时,他们会在评论部分得到一个呈现的图像。他们不知道的是,这个链接默默地执行了一个获取他们 cookie 的PHP文件。
  • 现在,具有该用户会话 ID 的 cookie 保存在攻击者数据库中,攻击者可以在该站点上冒充该用户。

相关文章:
如何在网站中使用 cookie
会话劫持

参考资料: Computerhile – YouTube 频道