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