Qué vas a hacer
Muchas páginas web se fían más de lo que deberían: una página a la que nadie enlaza, un error que cuenta demasiado, una carpeta que cualquiera puede leer. OWASP Juice Shop es una tienda hecha con fallos así, para que puedas encontrarlos sin peligro. Resolverás tres de sus retos más fáciles y verás cómo cada uno se pone en verde en su Score Board (marcador).
La única regla
Advertencia
Este laboratorio ejecuta una página web insegura a propósito. Ataca solo esa web y nada más. Es tu copia privada, sin salida a internet, así que no puede afectar a nadie. 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.
Antes de empezar
Nota
Pulsa Iniciar el laboratorio en la barra de la parte superior de esta lección y espera hasta 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. Mira la tienda
Pulsa el enlace de la barra del laboratorio para abrir la tienda en una pestaña nueva. Míralo todo como lo haría un cliente: busca apple y abre un producto. Cada cosa que haces envía una petición a un programa. A un programa se le pueden pedir cosas que no estaba pensado para contestar.
2. Pregunta a la tienda sin la página
El cuadro de búsqueda pide productos a la tienda. curl puede hacer la misma pregunta sin navegador, y la respuesta es JSON sin adornos. Mira lo que llega: es mucho más de lo que enseña la página.
curl -s -w "\n" "http://juice-shop:3000/rest/products/search?q=apple"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
3. Reto: encuentra el Score Board
El Score Board es una página real, pero nada enlaza a ella: encontrarla es el primer reto. En la pestaña de la tienda, cambia el final de la dirección por /#/score-board y pulsa Intro. Muestra todos los retos por dificultad, y Score Board es el primero, ya en verde.
4. Reto: lee un archivo que no deberías
A veces los servidores web muestran una carpeta que nunca debió ser pública. Este comando pide un documento de la carpeta /ftp de la tienda. Está marcado como confidencial, pero cualquiera que lo pida puede leerlo. En el Score Board, Confidential Document se pone en verde.
curl -s http://juice-shop:3000/ftp/acquisitions.mdSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
5. Reto: haz que la tienda enseñe un error
Esta búsqueda es '(, una comilla y un paréntesis, escrita %27( en la dirección. La comilla corta antes de tiempo el texto de la propia tienda, y el paréntesis estropea su pregunta a la base de datos. Un programa cuidadoso diría "sin resultados". Este escribe el error de su base de datos, SQLITE_ERROR, que le cuenta a un atacante con qué está hecho. Error Handling se pone en verde.
curl -s "http://juice-shop:3000/rest/products/search?q=%27("Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
6. Comprueba el Score Board
Vuelve a la pestaña del Score Board y recárgala: los tres retos están en verde. Hay más de cien, con pistas, si quieres seguir. La tienda olvida su estado cuando el laboratorio se detiene, así que, si vas a seguir mañana, copia el continue code (código para continuar) que ofrece el Score Board.
Para el profesorado
Consejo
Esta lección es un ejemplo pequeño de una lección practicada en un laboratorio: los pasos y los botones Ejecutar son la lección, y el laboratorio es la copia de cada alumno. El laboratorio es una aplicación web completa que cada alumno ataca en su propia copia, sin salida a internet, y nada se califica automáticamente: pida una captura del Score Board y una frase sobre por qué existe cada fallo. Cópiela en su propio módulo y cámbiela, o cree una desde cero con el menú Laboratorio del editor de lecciones.