会话劫持

会话劫持是指攻击者在两台计算机之间的有效会话被劫持。攻击者窃取一个有效的会话 ID,以便闯入系统并窃取数据。

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

The attacker sniffs and accesses a legitimate session id from a user interacting with a web server, then uses that session identifier to spoof the session between the regular user and the server to exploit the user's session and access the server directly.

会话劫持发生的原因是

  • 无效会话 ID 没有账户锁定机制
  • 会话 ID 生成算法薄弱
  • 处理不安全
  • 会话过期时间无限
  • 会话 ID 短
  • 明文传输

会话劫持过程

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

防止会话劫持

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

另见