期限 饼干中毒 在不同的上下文中用于描述旨在操纵,拦截或伪造HTTP cookie内容的攻击。 Cookie中毒攻击是不同类型的攻击,可以同时影响客户端应用程序,数据传输或Web服务器。

曲奇中毒的许多面孔

期限 中毒 Web应用程序安全和网络安全中的“安全性”最常用于描述攻击者旨在修改存储信息的攻击,该信息后来被第三方使用,从而产生不利影响。例如, DNS缓存中毒 描述了攻击,其中修改了DNS缓存的内容,以将该缓存的用户定向到恶意网站。

但是,就Cookie而言,该术语 中毒 实际上常常错误地用来描述Cookie的内容并未实际修改的多种不同的攻击。这些攻击大多数旨在访问cookie的内容(cookie劫持)或从头开始伪造cookie的内容。

客户端Cookie中毒

Cookie中毒的真正形式相当罕见,因为当今的应用程序程序员很少犯这样的基本错误。 Cookie中毒攻击是由用户发起的,该用户在将cookie发送到Web服务器之前为自己的利益操纵cookie的内容。用户所需要做的就是按下F12并使用用户的浏览器GUI修改Cookie。当然,高级用户也可以根据自己的需要从头创建合适的HTTP请求。

例如,写得不好的Web应用程序可能会将当前登录用户的用户名存储在cookie中。然后,应用程序可以使用cookie的内容来检查哪个用户正在执行特定操作。如果是这样,则用户可以更改cookie的内容以模拟其他人。

中间人Cookie劫持

期限 饼干中毒 也经常用来形容 Cookie劫持,这是一种形式 中间人(MITM) 攻击。在这种情况下,攻击者使用某种其他攻击技术来窃听Web浏览器与Web服务器之间的通信,并获得对正在传输的Cookie内容的访问权。

在典型的MITM攻击中,攻击者不仅会监听通信,而且可能会操纵它。他们可以窃取传输的Cookie中包含的敏感信息,也可以对其进行修改以使自己受益。

使用缓冲区溢出进行Cookie劫持

Cookies的内容也可能被未经授权的各方使用 缓冲区溢出 攻击。如果Web服务器运行的软件容易受到缓冲区溢出攻击,则攻击者可能会读取服务器的内存,该内存通常包含最新的cookie信息。

但是,这种攻击非常罕见。 Web服务器上安装的应用程序并不容易受到缓冲区溢出的影响,即使是缓冲区溢出,攻击者设法为特定站点查找和识别cookie的情况也很少见。请注意,缓冲区溢出错误几乎不会在Web应用程序中发生,因为用于创建Web应用程序的大多数流行语言(如PHP,Java和JavaScript)都不受缓冲区溢出的影响。

Cookies和会议

大多数针对cookie的攻击都与会话标识符有关,会话标识符通常是使用cookie存储和传输的。会话cookie可能是不同攻击的目标,例如:

  • 会话劫持:这种类型的攻击旨在窃取用户的会话标识符。然后,攻击者使用被盗的会话标识符来模拟用户。
  • 会话固定:在这种类型的攻击中,攻击者诱使用户使用攻击者已知的会话标识符。用户登录后,攻击者可以冒充用户。

攻击者获得对正在使用的用户会话的访问权限后,他们就可以完全访问受害者的帐户。它们的进一步动作取决于应用程序的类型。例如,在一家在线银行中,他们可以访问一些财务操作和广泛的个人信息,这些信息可能被用来进一步升级攻击。

会话伪造

一些消息来源使用该术语 饼干中毒 to refer to 会话伪造。如果应用程序以不安全的方式生成会话标识符,并且攻击者可能计算或猜测标识符的形成方式,则可能会伪造会话。

会话伪造最多的案例之一可追溯到2013年,当时攻击者设法弄清楚Yahoo如何创建其身份验证Cookie。雅虎仅在2016年承认该攻击,而在2017年又发生了类似的攻击。总共,未经授权访问了数十亿用户帐户。

在以下情况下可能会伪造会话:

  • 使用可预测的算法生成会话标识符时。最简单的情况是会话标识符,它是一个数字,对于每个新会话,该标识符都增加一个。在这种情况下,找到工作会话标识符很简单。
  • 在基于不安全的随机数生成器生成会话标识符时。在这种情况下,找到工作会话标识符比较困难,但仍然可能。
  • 当应用程序无法阻止失败的尝试时。在这种情况下,攻击者可能会使用简单的蛮力攻击来找到有效的会话标识符。

要了解有关基于不安全的会话标识符生成的有趣的会话伪造攻击的更多信息,请阅读 本文.

跨站点脚本和Cookie劫持

跨站点脚本(XSS) 攻击是访问cookie内容(包括会话标识符)的一种很好的方法。如果Web应用程序容易受到攻击,甚至很简单 反映的XSS,攻击者只需接收会话标识符,就可以诱骗受害者单击提供的链接。

一旦受害者单击链接,会话cookie的内容就会以请求的形式发送到攻击者的网站。在最简单的情况下,攻击者只需分析Web服务器日志即可查看会话cookie的内容。

防止曲奇中毒

没有简单的方法可以防止Cookie中毒,原因仅在于该术语涵盖了如此广泛的漏洞。以下常规安全措施有助于减少来自与Cookie相关的各种攻击的威胁:

  • 永远不要信任在客户端计算的数据,因为它们很容易被操纵。
  • 仅使用HTTPS通信,例如,通过强制执行 HSTS 。这大大减少了窃听Cookie内容的威胁。
  • 不要使用自己的生成器来创建会话标识符。信任您的Web服务器软件可以为您完成此任务。
  • 定期使用 漏洞扫描器 查找并消除可能导致Cookie中毒的所有安全漏洞。

来源: //www.acunetix.com/blog/web-security-zone/what-is-cookie-poisoning/