会话劫持

会话劫持(Session hijacking)是指攻击者接管两台计算机之间的有效会话。攻击者窃取有效的会话 ID 以便侵入系统并窃取数据。

大多数身份验证仅在 TCP 会话开始时进行。在 TCP 会话劫持中,攻击者通过在会话中间接管两台机器之间的 TCP 会话来获得访问权限。

攻击者从与 Web 服务器交互的用户那里窃取并访问合法的会话 ID,然后使用该会话标识符欺骗用户和服务器之间的会话,以利用用户的会话并直接访问服务器。

会话劫持发生的原因

  • 无效会话 ID 不会锁定帐户
  • 弱会话 ID 生成算法
  • 不安全的处理
  • 无限会话过期时间
  • 短会话 ID
  • 明文传输

会话劫持过程

  1. 嗅探,即执行中间人(MITM)攻击,将自己置于受害者和服务器之间。
  2. 监视在服务器和用户之间流动的数据包。
  3. 中断受害者机器的连接。
  4. 接管会话。
  5. 使用受害者的会话 ID 注入新数据包到服务器。

防止会话劫持

  • 使用 SSH(安全外壳)创建安全通信通道
  • 通过 HTTPS 连接传递身份验证 cookie
  • 实现注销功能,以便用户结束会话
  • 在成功登录后生成会话 ID
  • 在用户和 Web 服务器之间传递加密数据
  • 使用字符串或长随机数作为会话密钥

参见