
Una prueba de concepto del CVE de traefik para comprender el impacto
Bienvenido al desafío Capture the Flag (CTF) de Shadow Corp. Este desafío pondrá a prueba tus habilidades para identificar y explotar vulnerabilidades relacionadas con cabeceras de seguridad y el comportamiento de proxies HTTP. Tu misión es evadir las protecciones y descubrir los secretos ocultos dentro de la aplicación web de Shadow Corp.
Has descubierto la interfaz web pública de Shadow Corp, una organización notoria involucrada en ciberespionaje encubierto. Se rumorea que han asegurado un endpoint protegido al que solo los miembros internos de confianza pueden acceder. Sin embargo, hay rumores de que, con las técnicas adecuadas, puedes engañar al sistema para que revele este endpoint oculto y exponer los secretos de Shadow Corp.
Tu tarea: ¡acceder al endpoint protegido y recuperar la bandera oculta!
Este CTF se puede ejecutar localmente, y necesitarás instalar y configurar la aplicación web.
docker compose es necesario para ejecutar esta aplicación curl es recomendado para consultar y probar endpoints.
Clona el repositorio y navega al directorio del proyecto:
cd traefik-CVE-2024-45410-poc
Ejecuta el CTF
docker compose up
Tu objetivo principal es acceder al endpoint /protected y recuperar la bandera secreta. Sin embargo, notarás que el acceso directo está bloqueado a menos que se cumplan ciertas condiciones. El sistema verifica las fuentes de confianza validando la cabecera X-Forwarded-Host.
La aplicación está diseñada para permitir el acceso solo desde localhost (127.0.0.1). Sin embargo, si inspeccionas las cabeceras HTTP cuidadosamente, podrías descubrir una forma de "engañar" al servidor para que crea que eres una fuente de confianza. Investiga las cabeceras de proxy HTTP y cómo pueden ser manipuladas.
¿Has explorado alguna vez las cabeceras hop-by-hop? Estas cabeceras son utilizadas comúnmente por los proxies para controlar o modificar el comportamiento de las solicitudes reenviadas. Manipulando correctamente estas cabeceras, podrías convencer al servidor de que vienes de una ubicación de confianza, incluso si no es así.
La cabecera Connection puede ser un factor decisivo. ¿Y si pudieras introducir una cabecera en la que el sistema confía implícitamente? Explora cómo podrías modificar las cabeceras de la solicitud para incluir X-Forwarded-Host de una manera que el servidor no esperaría.
Comando de Ejemplo (No-Solución) Aquí tienes un ejemplo de cómo empezar a experimentar con curl:
curl -i http://localhost:5000/protected
Esto te mostrará que el acceso está denegado por defecto.
En algunos sistemas, ciertas cabeceras se consideran hop-by-hop, lo que significa que controlan el comportamiento de cada intermediario en una cadena de solicitudes HTTP. Estas cabeceras son eliminadas o alteradas por los proxies. Sin embargo, si manipulas hábilmente las cabeceras y especificas la cabecera hop-by-hop correcta, podrías encontrar una forma de evadir ciertos mecanismos de seguridad. Concéntrate en cómo funciona la cabecera Connection y cómo podrías influir en otras cabeceras que normalmente no se reenvían más allá de un solo salto. Esto podría ayudarte a engañar al servidor para que piense que eres un cliente de confianza.
Empieza a pensar en cómo ajustar tu solicitud para obtener acceso. La respuesta está en cómo la aplicación maneja las cabeceras de host de confianza. Recuerda, manipular las cabeceras puede ser la clave para resolver este CTF.