Buffer Overflow



  • Hallo,

    ich bräuchte für eine Projektarbeit ein Codebeispiel für C++ welches einen Puffer-Overflow auslöst...

    Leider sind meine Programmierkenntnisse nicht soweit fortgeschritten, dass ich sowas selber programmieren könnte 😉

    Könnte mir da jemand ein paar Zeilen Code zeigen?

    Danke & Lg



  • int i = 0;
    __int64 a = 0;
    while ( i++ >= 0 ) ++a;
    

    a sollte dann etwa 2.147... milliarden gross sein
    und i danach -2.147 milliarden

    ( 2^31-1 ums genau zu sagen )



  • Gibt mal "Buffer Overflow" bei Wikipedia ein, da gibt's nen Beispiel.

    Skym0sh0, du hast da eher einen Integer-Overflow produziert 😉



  • int main(){ char a[1]; a[1]='x'; }
    


  • void do_foo(char* name)
    {
        char buffer[8];
        strcpy(buffer, name);
        strcat(buffer, "lala");
        printf("%s", buffer);
    }
    
    int main()
    {
        do_foo("lalala");
    }
    


  • Danke für deinen Beispielcode... was macht der jetzt genau... ich kann das leider nicht ganz nachvollziehen

    Danke & lg



  • buzz_lightzyear schrieb:

    Danke für deinen Beispielcode... was macht der jetzt genau... ich kann das leider nicht ganz nachvollziehen

    Danke & lg

    Da siehst du ja, dass der Buffer 8 Zeichen gross ist. Mit strcat wird an den String noch etwas angefügt, was insgesamt dann grösser als 8 ist. Somit schreibst du mehr, als der Buffer gross ist. -> Buffer Overflow.



  • das geht aber auch kürzer -> s. mein Code.



  • u_ser-l schrieb:

    das geht aber auch kürzer -> s. mein Code.

    Ich denke mal, dass das Beispiel von hustbaer eher anzutreffen ist. Respektive die gefährliche Variante, da es ja nicht unüblich ist Benutzereingaben weiterzuverarbeiten. Und da kann (wenn man nicht aufpasst) so etas schon passieren.



  • hustbaer's ist eher anzutreffen, aber meines ist leichter zu verstehen 🤡



  • AAAAAAAAAH!
    Ich hab "name" nicht const gemacht!
    *kopf gegen die wand klatsch*

    🤡

    p.S.: natürlich war das total absichtlich, weil's zum Realismus dieses Beispiels sehr beiträgt!!!!11 😃


Log in to reply