Lo que vas a hacer
En Fundamentos de Juice Shop encontraste cosas que una tienda no debería haber mostrado. Aquí encuentras una más y después pruebas el fallo más conocido de la web: el cross-site scripting, o XSS (en español, "secuencias de comandos en sitios cruzados"). Ocurre cuando una web mete en su página lo que tú escribes sin hacerlo seguro, y entonces lo que escribiste se ejecuta como parte de la página.
La regla única
Advertencia
Este laboratorio ejecuta una web insegura a propósito. Ataca solo esa web y nada más. Es tu copia privada y no tiene salida a internet, así que nadie más puede verse afectado. No pruebes nunca estas cosas en una web que no sea tuya: en el Reino Unido es un delito según la ley británica Computer Misuse Act 1990 (sobre el uso indebido de ordenadores).
Antes de empezar
Nota
Pulsa Iniciar el laboratorio en la barra de arriba de esta lección y espera a que diga que está en marcha. La tienda se abre desde el enlace OWASP Juice Shop de la barra. Cada botón Ejecutar de abajo escribe su comando en el terminal de tu laboratorio, uno detrás de otro y en la misma sesión. Para verlos, o para escribir los tuyos, pulsa Abrir el terminal (pestaña nueva) en la barra.
1. Encuentra una página pensada para el dueño
Muchos programas publican números sobre sí mismos para que sus dueños los vigilen. Juice Shop lo hace en /metrics y no pregunta quién mira. 200 significa que la página respondió a cualquiera. En el Score Board (el marcador de la tienda), Exposed Metrics se pone en verde.
curl -s -o /dev/null -w "%{http_code}\n" http://juice-shop:3000/metricsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
2. Prueba el cross-site scripting
Abre la tienda desde la barra del laboratorio. Pulsa la lupa de arriba y escribe esto exactamente en el cuadro de búsqueda; después pulsa Intro. Las marcas alrededor de xss son acentos graves (backticks), no comillas. En un teclado español se escriben con la tecla que está a la derecha de la P, y después la barra espaciadora:
<iframe src="javascript:alert(`xss`)">
La tienda no hizo seguro tu texto antes de dibujar los resultados. El navegador lo leyó como parte de la página y lo ejecutó: sale un cuadro que dice xss. Pulsa Aceptar.
3. Mira el Score Board
Abre otra vez el Score Board (/#/score-board). DOM XSS está ahora en verde, junto a Exposed Metrics.
El arreglo es tratar todo lo que escribe un visitante como texto y nunca como parte de la página. Es lo que muestra Fundamentos de DVWA 2: XSS y su arreglo, desde el otro lado.
Para el profesorado
Consejo
Esta lección es un pequeño ejemplo de una lección practicada en un laboratorio: los pasos y los botones Ejecutar son la lección, y el laboratorio es la copia propia de cada alumno. El XSS es el ejemplo típico de cualquier unidad de seguridad web, y aquí el alumno lo ve funcionar en un laboratorio sin salida al exterior, así que nadie más puede verse afectado. Pida una captura del Score Board y una frase sobre lo que la tienda debería haber hecho en su lugar. Puede copiar la lección en su propio módulo y cambiarla, o crear otra desde cero con el menú Laboratorio del creador de lecciones.