Configuración

Crack The Gate 1

|

web-exploitation · Fácil

Desafío

Recibimos una página web con un formulario de login. No tenemos la contraseña para entrar, pero sí nos proporcionan un correo electrónico válido: email: ctf-player@picoctf.org

El objetivo es lograr acceder al sistema sin conocer la password.

Herramientas

  • Navegador Web (Inspector de código)
  • Decodificador ROT13 (online)
  • Burp Suite (o curl)

Explicación

Arrancamos enfrentándonos a un login donde nos falta la mitad de la información (la contraseña). Lo primero que debemos hacer en cualquier reto web cuando estamos estancados es mirar lo que no se ve a simple vista: el código fuente.

Si inspeccionamos la página (Ctrl + U o Click derecho -> Ver código fuente), nos encontramos con un comentario HTML bastante curioso escondido en el cuerpo del documento:

`<!-- ABGR: Wnpx - grzcbenel olcnff: hfr urnqre "K-Qri-Npprff: lrf" -->`

A primera vista, es una cadena de caracteres sin sentido. Podríamos pensar en Base64, pero al ver el set de caracteres (solo letras, sin números ni símbolos típicos de B64 como + o =), huele a un cifrado por sustitución simple.

Buscando en internet o usando herramientas de análisis, confirmamos que está codificado en ROT13 (una cifra César que rota las letras 13 posiciones). Una herramienta muy útil para esto es rot13.com.

Al decodificar el mensaje Wnpx - grzcbenel olcnff: hfr urnqre "K-Qri-Npprff: lrf", obtenemos la instrucción clara:

NOTE: Jack - temporary bypass: use header “X-Dev-Access: yes”

Los developers dejaron un backdoor temporal. La instrucción nos dice que debemos agregar una cabecera HTTP personalizada (X-Dev-Access) con el valor yes en nuestra petición al servidor.

Para explotarlo podemos hacerlo de dos maneras

  • Burp Suite (La opción gráfica): Interceptamos la petición de login (usando el email que nos dieron ctf-player@picoctf.org y cualquier password). Enviamos la petición al Repeater, agregamos la línea X-Dev-Access: yes debajo de las otras cabeceras y enviamos (Forward).

  • Curl (La opción rápida): Podemos simularlo desde la terminal enviando la cabecera con el flag -H.

    curl -H "X-Dev-Access: yes" [http://url-del-reto.com](http://url-del-reto.com)

Una vez enviada la petición con la cabecera inyectada, el servidor reconoce que somos “developers” y nos devuelve la respuesta con la flag.

← Volver a soluciones