¿Cómo hacer un ataque XSS reflejado?

Autor: | Última modificación: 26 de octubre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

¿Sabes cómo hacer un ataque XSS reflejado y para qué sirve aprender esta técnica de hacking web en ciberseguridad?

El cross-site scripting (XSS) es uno de los ciberataques web más comunes. Este ataque permite ejecutar código JavaScript malicioso en el navegador de una víctima por medio de una aplicación web vulnerable. Existen tres tipos de XSS:

  • Reflejado.
  • Persistente.
  • Basado en DOM.

El cross-site scripting reflejado es aquel en el que el código malicioso solo se ejecuta en el navegador de una víctima que abre determinado link. Este enlace lleva incrustado el payload, que puede estar diseñado para robar las credenciales de un usuario u otros fines perjudiciales.

En este post, veremos un ejercicio de pentesting web para aprender cómo funciona este tipo de ciberataque. A continuación, te enseñaremos cómo hacer un ataque XSS reflejado en una aplicación web. Cabe aclarar que el siguiente tutorial está hecho con fines académicos y que la técnica que explicaremos debe utilizarse siempre con propósitos éticos.

¿Cómo hacer un ataque de XSS reflejado?

Para aprender cómo hacer un ataque XSS reflejado y entender cómo funciona, crearemos la página web con el código vulnerable desde cero. Para ello, lo primero que debes hacer es abrir una máquina virtual con sistema operativo Kali Linux.

Ahora, abre una terminal y ejecuta el siguiente comando para arrancar un servidor con Apache 2:

service apache2 start

A continuación, dirígete al directorio /var/www/html, donde podrás modificar el código fuente de la aplicación del servidor. Para ello, usa el comando:

cd /var/www/html

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Lo siguiente que debes hacer es crear la página con el código vulnerable. Para ello, crearemos un archivo PHP, llamado «hello.php», con el editor de texto GNU nano, de la siguiente forma:

nano hello.php

En el editor de texto, transcribe el siguiente código vulnerable de la aplicación:

¿Cómo hacer un ataque XSS reflejado? 1

Guarda los cambios y, ahora, dirígete en el navegador a la página:

http://127.0.0.1/hello.php

Te darás cuenta de que, si escribes la siguiente dirección URL:

http://127.0.0.1/hello.php?name=pepe

La aplicación imprimirá en pantalla el valor:

«Hello pepe»

Esto quiere decir que podemos ejecutar código JavaScript en el navegador a través de la aplicación, modificando su URL del siguiente modo:

http://127.0.0.1/hello.php?name=<script>alert(123)</script>

Al ingresar a esta dirección, veremos que el navegador mostrará una alerta con el mensaje «123», lo que indicará que estamos ejecutando el payload «<script>alert(123)</script>» correctamente. De este modo, se podría robar información sobre las cookies de sesión del usuario, usando un payload como el siguiente:

http://127.0.0.1/hello.php?name=<script>alert(document.cookie)</script>

Con este código, le estaríamos indicando al navegador que muestre el token de inicio de sesión del cliente en una alerta. Asimismo, con payload más complejo, podríamos enviarle este token directamente al servidor del atacante.

Otros tipos de XSS

Ya hemos visto cómo hacer un ataque XSS reflejado, construyendo nosotros mismos la página web vulnerable para explotarla. De este modo, se hace comprensible el ataque y la vulnerabilidad informática que lo permite. Ahora bien, también es preciso conocer los diferentes tipos de ataques XSS.

XSS persistente

La diferencia entre cómo hacer un ataque XSS reflejado y uno persistente es que el segundo queda almacenado en la página web en el que se hace. Por lo tanto, permite ejecutar código JavaScript en los navegadores de todos los usuarios que visiten un sitio comprometido. Esto se logra por medio de entradas de datos vulnerables, que se almacenan en las bases de datos de la aplicación. Por ejemplo, secciones de comentarios.

XSS basado en DOM

DOM o Document Object Model es una interfaz de programación de aplicaciones que se utiliza para representar en estructura de árbol el código fuente de una página web. El DOM se puede utilizar en el frontend de una página para leer, acceder y modificar este código. Cuando hay una falta de validación de los inputs del usuario en el DOM, se puede ejecutar código JavaScript en el navegador de un cliente.

¿Cómo aprender más?

Ya hemos visto cómo hacer un ataque XSS reflejado. Si quieres aprender más técnicas de hacking web para convertirte en todo un especialista en pocos meses, nuestro Ciberseguridad Full Stack Bootcamp es la formación intensiva perfecta para ti. ¡Pide información y descubre cómo impulsar tu vida profesional!

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.