HackerOne 212 CTF Writeup

Ya se que había prometido otros writeups antes que este pero es que si no me paran de poner ctf’s así no hay quien pueda, aprovecho que para este no hubo manera más que escribir un writeup para compartirlo con vosotros a ver que os parece.

Enunciado:
An engineer of acme.org launched a new server for a new admin panel at
http://104.236.20.43/. He is completely confident that the server can’t be hacked. He added a
tripwire that notifies him when the flag file is read. He also noticed that the default Apache
page is still there, but according to him that’s intentional and doesn’t hurt anyone. Your goal?
Read the flag!

Writeup:

En la url que nos dan podemos ver la página por defecto de Apache (versión de Ubuntu) que nos mencionan en el enunciado, después de buscar un poco me encontré con algo interesante en la uri /flag con el siguiente resultado:

El hecho de que nos den el dominio y la referencia a un panel de administrador me llevo a probar poniendo distintos dominios en mi archivo de hosts apuntando a esa ip resultando en un 200 y una cookie:

 Probamos a poner la cookie a yes:

GET no está permitido, así que la siguiente opción a probar es POST:

Parece que falta algo. Mientras tanto dirbuster encontró un par de uris interesantes, /read.php y /reset.php, el segundo solo me devolvía ok pero el primero parecía mucho más prometedor:

Después de varios intentos pasando el parámetro row como json (por el tipo de respuesta que recibí), url e incluso en una cookie me decidí por volver al index y probar el post allí:

Ok, espera un dominio, vamos a añadirlo:

Tiene que ser un .com:

Extraño, probamos añadiendo otro .com:

Parece que el dominio tiene que seguir el formato 212.domain.com:

Volvemos a read.php a ver que hay esta vez ahí:

Decodificando el base64 nos muestra el contenido del website, así que parece que estamos ante una vulnerabilidad SSRF así que apuntamos nuestro dominio a 127.0.0.1 y repetimos la llamada:

Esta vez obtenemos la página de default de Apache nuevamente, pero ahora podemos intentar encontrar otros servicios añadiendo un puerto a la llamada, luego de un rato encontré algo interesante en el puerto 1337:

Esta vez obtenemos el mensaje “Hmm, where would it be?”  La página de flag parece el sitio obvio pero el problema es que las llamadas terminan siendo del estilo /flag.com así que necesitaba escapar el .com pero los caracteres habituales no estaban permitidos. Así que vamos a intentar mover el .com a otro header:

Pero la respuesta esta vacía, espera, no subían los ID de uno en uno? Acabamos de saltar del ID 10 al 12, vamos a ver que hay en el ID 11:

Bingo! Decodificamos el base64 y encontramos la flag:

La verdad es que la prueba ha sido muy interesante así como un gran quebradero de cabeza, aquí queda todo muy bonito pero la verdad es que fueron varios días de pegarse contra un muro en cada nuevo avance, pero ha sido una gran experiencia.

Espero os haya gustado y, como siempre, gracias por vuestra visita!

Esta entrada fue publicada en ctf, hackerone, web, writeups. Guarda el enlace permanente.

3 respuestas a HackerOne 212 CTF Writeup

  1. Noumeno dijo:

    Felicidades por la entrada, para mi que estoy a años luz de tu conocimiento, se me hace bastante mas fácil de entender. muchas gracias.

    • KALRONG dijo:

      Gracias! Me alegro de que te haya gustado, y tampoco soy ningún crack, y mucho menos en web, todo es echarle ganas y tiempo y, sobre todo, no desanimarse!

  2. Noumeno dijo:

    Seguiré tu consejo, gracias!!!

Deja un comentario