Format String

Ä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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert