Bienvenida: qué es un reto web
Bienvenida
Bienvenido a CTF web: lo que el navegador le cuenta. Esta píldora es para quien ya sabe qué es un CTF y quiere resolver su primer reto web sin depender de herramientas de pentesting: alcanza con el navegador que ya tiene y, si quiere, Python 3 para levantar un servidor local. Son cinco lecciones: esta, una de herramientas, una práctica guiada, el reto y su writeup. Después viene un quiz de 4 preguntas. En total, unos 50 minutos.
El reto es el sitio de Café del Valle, una tostadora ficticia de Tarrazú cuyo informático dejó el login validándose en JavaScript "mientras salía el backend". Ese "mientras" lo he visto durar años en sitios reales.
Qué es un reto web en un CTF
En la categoría web le dan una dirección o, como aquí, un zip con un sitio, y la flag está en algún lugar que el sitio no le muestra a simple vista pero sí le entrega. Esa es la idea de toda la píldora: lo que llega a su navegador ya es suyo. El HTML con sus comentarios, cada archivo JavaScript, las cookies, el almacenamiento local y las cabeceras de la respuesta viajan hasta su máquina, y usted puede leerlos todos.
Un reto web de nivel inicial se reconoce rápido. Hay un formulario de acceso, un robots.txt con rutas raras, comentarios de desarrollador en el código o un token con pinta de base64 en las cookies. En los niveles altos aparecen inyección SQL, plantillas del lado del servidor y deserialización, pero todos empiezan igual: mirar con calma lo que el servidor manda.
En mi primer reto web me puse a buscar qué "atacar", y la flag estaba en un comentario HTML. Desde entonces, lo primero que hago con cualquier sitio es Ctrl+U y leer el código fuente de arriba abajo.
Lo que se lleva para el trabajo defensivo
Esto no es un truco de competencia. Si usted revisa código antes de que salga a producción, audita el sitio de una pyme o responde a un incidente, va a encontrar exactamente estos errores: contraseñas en JavaScript, rutas "secretas" anunciadas en robots.txt, datos de sesión en el navegador sin firma. El OWASP Top 10, en su edición 2021, los agrupa sobre todo en A01 (control de acceso roto) y A07 (fallas de identificación y autenticación). Al final de la píldora va a saber reconocerlos en una revisión y explicar por qué se corrigen en el servidor.