什麼是 Session 劫持?
攻擊者通過竊取/預測會話標識符,冒充合法用戶與服務器建立連接,**接管現有會話**的攻擊手段。屬於 TCP 協議層面攻擊,幾乎所有局域網均存在風險。
TCP 三次握手與序列號機制
- 客戶端 → 服務端:SYN 包,含
ISN_C(初始序列號)、Window Size
- 服務端 → 客戶端:SYN+ACK 包,確認
ISN_C,含 ISN_S
- 客戶端 → 服務端:ACK 包,確認
ISN_S,連接建立,可攜帶數據
後續傳輸:序列號 = 上次收到序列號 + 數據長度。服務端/客戶端靠序列號重組亂序包。
Session 劫持核心步驟
- 監控:嗅探網絡流量,捕獲目標會話數據包
- 破壞同步:預測/計算下一個合法序列號,在合法方發包前搶先發送偽造包
- 劫持:偽造包被接受,合法方後續包因序列號錯誤被丟棄,攻擊者接管會話
序列號預測難度與繞過
- 早期 ISN 固定/線性增長,**極易預測**
- 現代偽隨機 ISN(32 位,40 億空間),**盲預測幾乎不可能**
- 繞過方案:ARP 欺騙/中間人攻擊 → 將雙方流量劫持到攻擊機 → 直接獲取真實序列號 → 精準偽造包
攻擊工具
- 商業:各類滲透測試套件
- 開源:
hunt、ettercap、dsniff、tcpkill、JuggerNET 等
防禦體系
| 層面 | 措施 |
| 傳輸加密 | **全站 HTTPS (TLS 1.2+)**,加密載荷防嗅探,序列號雖明文但無法構造合法加密包 |
| 會話管理 | Session ID 高熵隨機、HttpOnly、Secure、SameSite、定期輪換、登出銷毀 |
| 網絡層 | 動態 ARP 檢測 (DAI)、端口安全、VLAN 隔離、防 ARP 欺騙 |
| 主機層 | TCP SYN Cookie、序列號隨機化、防 IP 欺騙 (RPF)、入侵檢測 (IDS/IPS) |
| 應用層 | 關鍵操作二次驗證 (MFA/OTP)、異地登錄告警、並發會話限制、設備指紋綁定 |
現代 Web 環境下的演變
- 傳統 TCP 劫持因 HTTPS 普及**大幅降低**
- 轉向**應用層 Session 劫持**:XSS 竊取 Cookie、CSRF 偽造請求、中間人攔截未加密 API、Session Fixation、Token 重放
- 防禦重心:CSP 防 XSS、SameSite Cookie 防 CSRF、HSTS 強制 HTTPS、短效 JWT + 刷新機制、關鍵操作綁定設備/行為分析
總結
Session 劫持從 TCP 序列號預測演變為應用層會話令牌竊取。**全鏈路 HTTPS + 安全 Cookie 屬性 + 防 XSS/CSRF + 異常行為檢測** 是現代防禦核心。理解底層協議機制,有助於構建纵深防禦體系。
- 上一篇文章: Java Swing 鼠標事件全方位監聽實戰
- 下一篇文章: ExtJS 拖放技術實戰:DragSource 拖動到 DDTarget 指定區域
Copyright ©
程式碼之家 All Rights Reserved