什么是会话劫持?
TCP会话劫持是对受保护网络上的用户会话的安全攻击。会话劫持的最常见方法称为IP欺骗,当攻击者使用源路由的IP数据包在网络上两个节点之间的活动通信中插入命令并将其伪装成经过身份验证的用户之一时。这种攻击是可能的,因为身份验证通常仅在TCP会话的开始进行。
会话劫持的另一种类型称为中间人攻击,其中,攻击者使用嗅探器可以观察设备之间的通信并收集传输的数据。
会话劫持的不同方式:
- 有许多方法可以进行会话劫持。其中一些如下:
- 使用封包嗅探器
从上图中可以看出,攻击通过使用某些数据包嗅探器捕获了受害者的会话ID,以获取对服务器的访问。
- 跨站点脚本(XSS攻击)
攻击者还可以使用javascript,通过XSS攻击来捕获受害者的会话ID。如果攻击者使用恶意JavaScript向受害者发送了精心设计的链接,则当受害者单击链接时,JavaScript将运行并完成攻击者发出的指令。 - IP欺骗
欺骗伪装成其他人。这是一种用于使用可信主机的IP地址对计算机进行未经授权的访问的技术。在实施此技术时,attcker必须获取客户端的IP地址,并将自己欺骗了客户端IP地址的数据包注入TCP会话中,以欺骗服务器它正在与受害者(即原始主机)进行通信。 - 盲目攻击
如果攻击者无法嗅探数据包并猜测服务器期望的正确序列号,则可以尝试使用序列号的强力组合。 - https://www.owasp.org/index。 PHP/ Session_hijacking_attack
- https://zh.wikipedia.org/wiki/Session_hijacking
- http://www.infosecwriters.com/text_resources/pdf/SKapoor_SessionHijacking.pdf
- https://www.owasp.org/images/c/cb/Session_Hijacking_3.JPG
- https://www.owasp.org/images/b/b6/Code_Injection.JPG
减轻
为了通过会话劫持来防御网络,防御者必须在应用程序级别和网络级别上实施安全措施。可以通过对数据包进行加密来防止网络级劫持,从而使劫持者无法解密数据包头,以获得任何有助于欺骗的信息。可以通过使用诸如IPSEC,SSL,SSH等协议来提供这种加密。Internet安全协议(IPSEC)能够对参与通信的双方之间的某些共享密钥上的数据包进行加密。 IPsec以两种模式运行:传输和隧道。
在传输模式下,仅对数据包中发送的数据进行加密,而在隧道模式下,数据包报头和数据均被加密,因此限制更为严格。
会话劫持是对Web上的网络和Web应用程序的严重威胁,因为大多数系统都容易受到攻击。
资料来源;