6

任何人都可以明确区分会话固定、会话重放和会话劫持攻击吗?我看过很多文章,但是会话劫持和会话重放攻击之间的问题仍然不清楚。

4

1 回答 1

8

固定和劫持最终都有相同的目标——获得对会话的访问权。它们仅在您实现这一目标的方式上有所不同。

会话劫持只是窃取现有的有效会话 cookie 的行为。最常见的是通过嗅探网络流量(MITM 攻击),但也通过任何其他可能泄露会话 ID 的方式。

会话固定是类似的,但是是相反的——一个预定义的会话 cookie 被植入到受害者的浏览器中。因此,在受害者登录网站后,他们将使用攻击者已经知道的相同会话 cookie,因此攻击者拥有的 cookie 现在已经过身份验证并且可以被利用。
当然,这需要攻击者临时访问受害者的浏览器本身,但原理很简单——如果数据一开始就在你的控制之下,就没有必要窃取数据。

重播有点不同,可能意味着两件事......

如果攻击者已经可以访问会话 cookie(通过固定或劫持),那么这只是将 cookie 重新用于他们想要的任何东西的行为。
否则,它可以指欺骗受害者重新提交以前有效的请求(使用相同的会话 cookie)。例如,用户可能会被诱骗购买多份他们只想要一个单位的商品。

注意:我在各处都使用了“会话 cookie”来简化解释,但当然还有其他传输会话 ID 的方法。

如何保护自己免受这些攻击:

  • 使用 TLS (HTTPS) 来防止 MITM 攻击,因此是最常见的劫持方式。还要Secure在 cookie 上设置标志,以防止它们通过纯文本连接提交(即浏览器只会在使用该https://方案时发送)。
  • 在 cookie 上设置HTTPOnly标志,这样 JavaScript 就无法访问 cookie。如果 JS 不能访问 cookie,这也意味着它不能泄漏它们(不能被劫持),但是还有很多其他方法可以利用客户端代码。
  • 在用户执行的每个更改权限的操作(登录、注销、以管理员身份登录 - 如果有额外的表单)以及定期的短时间间隔内重新生成会话 ID。这是针对所有3 种攻击的缓解机制。
  • 让您的应用程序拒绝与服务器端记录不匹配的会话 cookie,以防止固定。
于 2017-05-03T13:11:12.623 回答