安全技术研究-CSRF攻击

介绍

跨站点请求伪造(CSRF / XSRF)是一种攻击类型,当用户通过恶意站点、博客、电子邮件、程序或即时消息进行身份验证时,在受害者不知情的情况下web浏览器在受信任的站点上执行非法的操作,就会发生这种攻击。

对于大多数站点,浏览器请求自动包含与站点相关的任何凭证(会话cookie、Windows域凭证、IP地址等)。因此,该网站无法区分受害者发送的是合法请求还是伪造请求。

执行CSRF攻击的攻击者无法看到伪造请求的响应,因为攻击是瞬时的,即state-changing请求。然而,当与针对管理员账号的社会工程攻击相结合时,这种方法可能对WEB应用程序造成严重的破坏。

影响及危害

CSRF攻击目标是专门针对state-changing的请求,而不是窃取数据,因为攻击者无法看到伪造请求的响应。成功的CSRF攻击的影响仅限于易受攻击的应用程序所暴露的能力。例如,这种攻击可能导致资金转移、更改密码或使用用户的凭证进行购买消费操作。

场景

CSRF攻击通常包括两种行为:通过社交工程或网络钓鱼诱骗受害者点击链接或加载页面,然后从受害者的浏览器向网站发送看似合法、精心制作的请求。攻击者能够发送带有值的请求,包括网站与受害者关联的cookie,仿冒受害者在网站上执行某些操作。

以下例子很好地说明了“跨站点”一词在这种攻击中的应用:

注意,表单的交互是发送到受攻击的站点,而不是恶意站点。这是CSRF的“跨站点”部分。

如何防护

有许多代码模型可以防止CSRF攻击,并且可以同时应用多个代码模型作为深度安全策略防御的一部分。

在身份验证成功后,在服务器端生成一个随机令牌,并与用户的会话相关联。令牌作为HTML响应的一部分返回给用户(例如,表单中的隐藏字段或通过AJAX检索)。

当用户需要执行敏感操作时,令牌就包含在请求中。应用程序验证令牌的正确性,然后仅当请求中的令牌与存储在用户会话中的令牌匹配时,才执行请求的操作。

  1. 客户端请求一个包含表单的HTML页面。
  2. 服务器在响应中包含两个令牌。一个令牌作为cookie发送。另一个被放置在一个隐藏的表单字段中。令牌是随机生成的,因此攻击者无法猜测值。
  3. 当客户端提交表单时,它必须将两个令牌发送回服务器。客户端将cookie令牌作为cookie发送,并在表单数据中发送表单令牌。
  4. 如果一个请求不包含这两个令牌,服务器将禁止该请求。
  1. 重新身份验证(密码或更强)
  2. 一次性的令牌
  3. 验证码
展开阅读全文

页面更新:2024-04-01

标签:令牌   攻击者   表单   受害者   恶意   站点   操作   服务器   用户   网站

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top