Kan man verkligen ändra sig?

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}

n00bz

Home of the n00bz CTF team.


Write-up för CTF-utmaningen 'Kan man verkligen ändra sig?' från Crate CTF 2025

By n00bz, 2025-11-16