Wie verwende ich Format String Attack

Angenommen, ich habe den folgenden Code:

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

int num1 = 0;

int main(int argc, char **argv){
    double num2;
    int *ptr = &num1;
    printf(argv[1]);

    if (num1== 2527){
        printf("Well done");
    }
    if(num2 == 4.56)
        printf("You are a format string expert");
    return 0;
}

Ich versuche zu verstehen, wie ich es richtig mache, aber ich kann meine Gedanken nicht mit den Anleitungen im Internet ordnen.

Ist es angenommen, um etwas wie:

./Program %p %p %p %p

und dan

 ./Program $( printf "\xAA\xAA\xAA\xAA") %.2523d%n

Ich kann das einfach nicht herausfinden, bitte hilf mir dabei.

Der Hauptpunkt dabei ist, einen String über die Druckfunktion in ein laufendes Programm zu integrieren. Ich muss sowohl "Well done" als auch "You are a format string expert" zum Ausdrucken bringen. In meinem Fall über Linux Terminal / Shell. Wie HuStmpHrrr bemerken: Dies soll in der Tat White Hacking sein - Software Security

Antworten auf die Frage(2)

Ihre Antwort auf die Frage