Descubrimiento de XSS en Chess.com
- Mientras disfrutaba el ajedrez como pasatiempo y jugaba con la tecnología, descubrí una vulnerabilidad XSS en Chess.com.
- Chess.com es el sitio de ajedrez más grande de internet, con más de 100 millones de miembros.
Resumen
- A inicios de 2023 empecé a pasar mucho tiempo en Chess.com.
- Hice que un amigo se registrara en el sitio y, usando la función de amigos, nos agregamos de inmediato.
- Me dio curiosidad si sería posible agregar amigos automáticamente de una forma similar al gusano de MySpace.
- Creé una cuenta nueva y revisé la pestaña de red en las herramientas de desarrollador para encontrar la URL de agregado automático de amigos.
Medio juego
- Intenté hacer XSS usando el editor de texto enriquecido TinyMCE.
- Usé un proxy de Burp para insertar código HTML directamente en la descripción de "About".
- Revisé la configuración de TinyMCE y generé una carga útil de XSS usando la propiedad de estilo
background-image. - Probé varios símbolos hasta encontrar una forma de ejecutar el XSS.
- Finalmente desarrollé una manera de extraer cookies y objetos de JavaScript.
Final
- Trabajé para ejecutar el XSS por completo.
- Encontré un método nuevo que usaba el atributo
srcsetpara permitir una sintaxis de JS más amplia. - Ejecuté directamente la carga útil de XSS usando codificación Base64.
- El impacto era grande porque el editor TinyMCE se usaba en todo el sitio.
Análisis
- La causa raíz de la vulnerabilidad es la función de re-subida de imágenes.
- Es posible evadir la verificación de alojamiento de imágenes incluyendo el nombre de dominio de Chess.com.
- El editor de texto enriquecido permite varios elementos HTML, por lo que es adecuado para lograr XSS.
- TinyMCE estaba actualizado, pero faltaba la sanitización del HTML final.
- Chess.com debe aplicar sanitización al HTML final que se muestra a los usuarios.
Opinión de GN⁺:
- Esta publicación de blog explica de forma interesante el proceso de descubrir y reportar una vulnerabilidad de seguridad que puede surgir en una plataforma en línea a gran escala como Chess.com.
- Las vulnerabilidades XSS pueden representar una amenaza grave para la seguridad de un sitio web, y encontrar y corregir estas fallas es muy importante para proteger la privacidad de los usuarios.
- Este artículo subraya para desarrolladores de software y profesionales de seguridad la importancia de reconocer las vulnerabilidades en componentes de aplicaciones web como los editores de texto enriquecido y de prevenirlas.
1 comentarios
Opiniones de Hacker News
Introducción y contexto del autor original (OP)
Comentario sobre una función relacionada con el gusano de MySpace
Preguntas técnicas relacionadas con la vulnerabilidad XSS
PHPSESSIDno era HttpOnly y por qué no se corrigió una vulnerabilidad XSS ya conocida.Opiniones sobre el editor de texto enriquecido de chess.com
Pregunta sobre una sigla técnica
Pregunta técnica relacionada con redirección de subdominios
chess.com.foo.bar) logró eludir la política del mismo origen (same-origin policy).