OverRide/level07/walkthrough

22 lines
1.0 KiB
Plaintext

On peut voir dans le code grace a ghidra qu'on ecrit a l'addresse "index * 4 + array", la maniere dont l'asm le fait c'est index << 2 + array. On peut donc bypass la protection tout les 3 en ajoutant 2^31 qui n'est pas un multiple de 3 ((3k+n)%3 != 0 si n%3 != 0). A partir de ca on peut ecrire un shellcode dans la memoire, ensuite j'overide la got via l'ancienne methode.
Ici bas la methode que j'essayais de faire pendant des jours alors que ca marche pas mais ca aurait ete la classe..............
---------------------------------------------------------------------------------
-1040108880On peut ecrire que 8 octets sur 12
"/bin/sh" c'est 8 char avec le '\0' donc ok pour le modulo
"/bin" => 0x2F62696E => 794978670
"/sh\0" => 0x2F736800 => 796092416
system on peut le call avec l'addresse, puis l'argument vers esp+quelque chose.
-1040108880 Index a store avec 4159090384 (0xf7e6aed0 ou system)
ca override le plt/got de puts
override esp pour avoir le bon argument format addr de system BLANC (modulo 3) addr de /bin/sh