App - Système

jeudi 16 août 2018, 11:15  #1
ELF 64 buffer overflow basic RIP=NULL ???
7r4nc3
  • 3 posts

Bonjour tout le monde,

j’essaye de ressoudre le challenge ELF x64 - Stack buffer overflow - basic alors voici ma demarche. On a un buffer overflow sur le stack donc je dois reecrir une adresse de retour avec l’adresse de callMeMaybe. On doit donc reecrire [stop spoil plz]. Le probleme c’est que quand je fais ca seulement rbp est reecrit donc je dois rajouter 8 octets mysterieux pour reecrire rip. C’est bien l’adresse de retour que scanf met sur la pile qu’on reecrit ??? Encuite une fois arriver la quand je reecrit rip avec l’adresse de callMeMaybe , rip vaut 0 ??!! Donc je reessaye avec une autre asdresse du style 414141 et la ca marche. Apres plusieurs essai je realize que cela se produit seulement quand 2 zeros se suivent dans l’adresse. Pour voir cela j’ai mit ma payload dans /tmp/test et ensuite passer en argument dans gdb.

Si quelqu’un peut m’eclairer ce serait sympa.

EDIT : gdb m’indique que j’atteind bien la fonction callMeMaybe le probleme vient de la seconde fonction setuid qui fait du grand n’importe quoi