format string 1 PicoCTF writeup

format string 1 PicoCTF writeup descripción

Descripción

Patrick and Sponge Bob were really happy with those orders you made for them, but now they’re curious about the secret menu. Find it, and along the way, maybe you’ll find something else of interest!
Download the binary here.
Download the source here.
Additional details will be available after launching your challenge instance.

format string 1 PicoCTF solución

Analizando el código encontramos las siguientes líneas:

scanf("%1024s", buf);
printf("Here's your order: ");
printf(buf);

Lo que permite realizar una vulnerabilidad de cadenas de formato, puesto que el ‘print(buf)’ no comprueba qué está imprimiendo. Con ‘scanf()’ guardaremos en ‘buf’ especificadores de formato. En concreto la siguiente cadena de caracteres:

%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p,%p

Con esto, el programa nos mostrará la información almacenada en sus direcciones de memoria:

Estos valores hexadecimales los debemos llevar a Cybercheff para poder traducirlos cómodamente:

Se puede apreciar el formato de una flag, pero para verla mejor limpiaremos el ruido y revertiremos la flag:

Ahora hay que reordenar los fragmentos, creando así la flag: ‘picoCTF{7y13_4x4_f14g_5e67bcb4}’.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *