Tags: pwn format 

Rating:

https://github.com/Beers4Flags/writeups/blob/master/2017/picoCTF/Pwn/l4flag/payload.py

Une faille de type format permet d'exploiter ce binaire. L'exploitation se fait en plusieurs étapes.
(Stack[i] correspondant à %i$08x (ce qu'il y a à l'offset i de la pile))

* On récupère l'adresse de la libc via Stack[2] qui donne __libc_start_main

* On note que Stack[17] -> Stack[53] et que Stack[53] pointe sur la pile donc d'une part on a l'adresse de la pile, d'autre part on peut mettre ce qu'on veut en Stack[55] et Stack[56] en changeant la partie basse de Stack[53] via %17$hn

Par cette méthode on fait pointer Stack[55]/Stack[56] vers strchr@GOT et on modifie strchr@GOT vers system@libc.
On obtient alors un shell facilement

Original writeup (https://github.com/Beers4Flags/writeups/).