LinuxProfi . AT
ihr professioneller Linux Dienstleister
Ähnlich wie bei Buffer-Overflow zeichnet schlechter Programmierstil für diese Angriffsart verantwortlich.
Folgender Programmcode zur Verdeutlichung:
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv) {
char (buf[2048] = {0};
strncpy(buf,argv[1],sizeof(buf)-1);
printf(buf);
putchar(’n‘);
return(0);
}
Folgendes passiert:
# ./code DDDD%x%x
DDDDbffffaa44444444
Der zweite Parameter ‚%x‘ gibt in Hex die Speicheradresse bekannt, wo
der String abgelegt ist. Wenn Nun das zweite ‚%x‘ gegen ‚%n‘ getauscht
wird, so stützt das betreffende Programm mit einem Seg-Fault ab. BINGO
😉
Adresse wird überschrieben und das Programm führt den Code aus den der Angreifer ab diesem Speicherbereich abgelegt hat.