Beskrivning
Att läsa in 256 byte i en 8 byte stor buffert går väl bra? Kompilatorn borde väl klaga ifall koden är sårbar? I och för sig har det här programmet alltid behövt kompileras med varningar avstängda…
Lösning
Ansluter vi till utmaningen via netcat så får vi en prompt där vi ska skicka in något.
Värdet är: 0xaaaaaaaa
Skriv något tack:
Skriver vi in några tecken så skriver vi över bufferten och ändrar värdet på variabeln changeme.
Värdet är: 0xaaaaaaaa
Skriv något tack: AAAAAAAAAA
Du skrev: AAAAAAAAAA
Stackdump av stack_variables (0x7ffc202d6a6c)
Offset Variabel ASCII (och hex)
--------------------------------------------------------------------------------
0 buffer ┬ A (0x41)
1 │ A (0x41)
2 │ A (0x41)
3 │ A (0x41)
4 │ A (0x41)
5 │ A (0x41)
6 │ A (0x41)
7 └ A (0x41)
8 changeme ┬ A (0x41)
9 │ A (0x41)
10 │ � (0x0a)
11 └ � (0xaa)
Oj, nu är värdet plötsligt 0xaa0a4141! Här har du flaggan: cratectf{this_is_why_we_need_buffer_overflow_protections}
Flagga: cratectf{this_is_why_we_need_buffer_overflow_protections}