Cookie篡改攻击

什么是cookie篡改?

在我们深入探讨前,我们先快速地理清一下术语。狭义上,cookie篡改攻击指直接修改已存在的cookie值。cookies只是存储在用户浏览器的文本值,因此,如果没有额外的防护措施,你可轻松地通过手动或者Javascript的document.cookie属性修改它们。幸运的是这样基础的攻击很少可能出现在现代web开发中,因为现代web开发中会话管理和其它涉及cookie操作的通常框架层面完成。

更广泛地说,“cookie篡改”这术语通常指所有的cookie相关的攻击,即使不涉及到篡改cookie本身。例如,一个容易受到攻击的程序可能允许恶意用户去发现cookie值或者设置新cookie去执行各种攻击。

用户端cookie篡改

如你在你的浏览器打开开发者工具面板,你可以查看和手动修改当前设置的cookie。一个脆弱的站点或者web应用可能把存储敏感状态信息直接在cookies,例如,是否允许管理员访问的标志。那样的话在浏览器手动改cookie的名称和值再刷新页面可能足以获得提升的权限。在web框架时代,很难找到一个生产站点或程序以为这种方式手动编码攻击,但理论上是可能的。

对攻击者更有用的是JavaScript提供的document.cookie属性,用于在脚本中处理cookies。如果一个敏感的cookie,例如会话session,没有额外的httponly标记,在一个成功的跨站点脚本(XSS)攻击后可由其读取和修改。

基于Cookie的会话攻击

在广义上说,cookie篡改意味着任何形式的cookie操纵,通常以会话cookies为目标。HTTP是一个无状态的协议,因此程序使用cookie来保持会话信息和其它数据在用户的计算机中。会话标识符是最有价值的数据存储在应用程序cookies中,因为它为会话劫持和相关的攻击开辟了道路。

所有基于Cookie的会话攻击针对用户会话都有相同的基本目标:骗web服务器认为攻击者是合法用户。这是一个快速的总结:

  • Session劫持:也叫cookie劫持或者side-jacking,这是一种当用户登录到特定站点时,攻击者接管用户会话的攻击。攻击依赖于攻击者对当前会话cookie的了解。
  • Session欺骗:相似于会话劫持,但是是在用户未登录时执行。攻击者使用窃取的或者伪造的会话tokens来发起一新的会话,在不需要用户交互的情况下冒充合法用户。
  • Session fixation:攻击者提供的会话标识符(例如,在钓鱼邮件中),并欺骗用户使用此标识符登录易受攻击的站点。 如果站点允许,则攻击者可以使用已知会话标识符劫持用户会话。

不管使用那种方法,会话被成功地接管都可能带来灾难性的后果。根据目标站点或者应用程序,攻击者可能能够窃取机密的用户信息,例如登录凭据或个人信息,或执行不良操作,例如转帐资金或添加新的用户帐户以供将来访问。

预防cookie篡改攻击

与众多安全漏洞一样,大多数与Cookie相关的攻击的共同点输入验证不足和信任了HTTP请求中的用户控制的数据。适当的cookie设置是Web应用程序安全的基本最佳实践,有许多安全措施可以最大程度地减少Cookie篡改攻击的风险:

  • 使用正确的Cookie标志和属性:有几种方法可以减少攻击者对Cookie的访问。通过设置httpOnly标记,你可以确保脚本无法访问Cookie。特别推荐对于会话cookies设置secure标记以确保仅通过HTTPS发送cookie。仔细选择domain属性的值还可以最大程度地减少cookie滥用-有关更多信息,请参见我们的cookie安全性白皮书
  • 使用唯一且安全的会话cookies:会话标识符应该是攻击者不可访问的,并且是随机生成的,因此无法猜测或暴力破解(brute-force) 。会话关闭后,它们也应该不可用。请参阅我们关于跨站点cookie操作的文章,以获取针对PHP中的会话标识符的攻击的实际示例。
  • 单个任务使用各自的cookie:使用多用途cookie可能很诱人,但这会使工作流程复杂化并可能带来安全风险。 特别是,会话cookie绝对不能用作反CSRF tokens或密码重置令牌。
  • 使用适当的会话管理:cookie安全性对于会话管理来说特别重要,因为一个错误可能会打开攻击之门,避免简单的错误,跟随着最佳实践的第一步是使用受信任且成熟的框架中的内置会话管理功能,而不是重新造轮子(并且不得不对其进行维护)。

有帮到你的点赞、首先一下吧

                                                                      需要更多教程,微信扫码即可

                                                                                 

                                                                                         ???

                                                        别忘了扫码领资料哦【高清Java学习路线图】

                                                                     和【全套学习视频及配套资料】
           


版权声明:本文为qfzhaohan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。