(c) teso. all rights reversed.
exploiting format string vulnerabilities - "Ich will kaputtmachen"

"Ich will kaputtmachen"

Bei Daemons, also Programmen die ständig in einer Instanz laufen, kann es manchmal nützlich sein, es remote zum Absturz zu bringen. Zum Beispiel kann somit ein coredump erzeugt werden, der bestimmte wichtige Informationen enthält (hash des root passwords), oder aber ein intakter Service würde bestimmte Aktionen verhindern oder erschweren. Zum Beispiel beim DNS Spoofing ist es vorteilhaft, wenn der zu spoofende Server deaktiviert ist.
Wie auch immer, es kann von Interesse sein, ein Programm zum Absturz zu bringen. Unter fast jedem Unix werden illegale Pointerzugriffe mit einem SIGSEGV geahndet, worauf der Kernel das Programm terminiert, wenn das Signal nicht gecatched wird (beim zweiten illegalen Zugriff gibts ein nicht catchbares SIGKILL).
Um so einen illegalen Pointer Zugriff zu erzeugen, genügt es meistens, einfach eine Kette von "%s" Parametern als Format String zu benutzen:

"%s%s%s%s%s%s%s%s"

Wird beim Anzeigen auch nur eines der Strings eine ungültige Adresse benutzt, so stürzt das Programm ab.

<< - < - > - >>