¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Fundamentos de DVWA 2: XSS y su arreglo

Aquí está la lección completa para leer. Crea una cuenta gratuita para practicarla en un laboratorio en vivo.

Laboratorio de contenedores4 min de lectura1 comando

Lo que vas a hacer

Vas a hacer cross-site scripting (XSS) en DVWA con el nivel bajo, leerás el código que lo permite y verás cómo el mismo intento no hace nada en el nivel imposible. Una web que mete en su página lo que tú escribes sin hacerlo seguro te deja añadir tu propio HTML y, con él, tu propio programa.

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 web se abre desde el enlace DVWA 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. Comprueba que la web funciona

200 significa que la página de inicio de sesión respondió desde tu terminal.

Comando
curl -s -o /dev/null -w "%{http_code}\n" http://dvwa/login.php

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

2. Entra y abre el ejercicio

Pulsa el enlace DVWA de la barra del laboratorio y entra como admin con la contraseña password. En DVWA Security (la seguridad de DVWA) comprueba que el nivel es low (bajo). Después elige XSS (Reflected) en el menú. Te pide tu nombre y te saluda.

3. Añade tu propio HTML

Escribe <b>hi</b> como tu nombre y pulsa Submit (enviar). No dice Hello <b>hi</b> con las etiquetas a la vista: dice Hello y después un hi en negrita. La web dibujó tus etiquetas como parte de su página.

Ahora escribe <script>alert(1)</script>. El navegador lo ejecuta: sale un cuadro que dice 1. Un atacante pondría algo peor en un enlace y se lo mandaría a alguien.

4. Lee el código y mira el arreglo

Pulsa View Source (ver código fuente). En el nivel bajo, el código mete tu texto directamente en la página. Ahora cambia DVWA Security a impossible (imposible), vuelve a XSS (Reflected) y escribe otra vez <b>hi</b>: la página muestra las etiquetas como texto normal, <b>hi</b>, y no se ejecuta nada. View Source te enseña por qué: el código hace seguro tu texto antes, con htmlspecialchars. Convierte < en &lt;, que el navegador dibuja como < en la pantalla pero nunca lee como el comienzo de una etiqueta.

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. Es el mismo laboratorio que Fundamentos de DVWA. El mismo ejercicio en el nivel bajo y en el imposible es el mismo código, primero inseguro y después arreglado, y eso hace que DVWA sea muy útil para las unidades de programación segura. 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.

Más en este laboratorio

Sobre este laboratorio y su código: Laboratorio de DVWA: practica inyección SQL y XSS en la Damn Vulnerable Web Application

¿Enseñas a una clase? Asigna estas lecciones a tus estudiantes con calificación y un laboratorio para cada uno.