Filer: Download challenge files

Writeup: alog

Indledende Observationer

Jeg fik udleveret en access.log fil og skulle finde et flag gemt i loggen.
Filnavnet og konteksten indikerede, at der var tale om webserver logs, sandsynligvis Apache eller Nginx.

Jeg startede med at undersøge loggen manuelt og søge efter usædvanlige mønstre.


Recon / Kortlægning

Første skridt var at søge efter flagformatet direkte:

1
grep "DDC{" access.log

Dette returnerede en interessant request, hvor flaget så ud til at være delvist til stede i URL’en.

Jeg bemærkede, at requesten indeholdt:

1
DDC{Tim3_Tr4v3l

Dog manglede jeg afslutningen.


Analyse

Ved nærmere analyse af log-linjen kunne jeg se, at URL’en var blevet afbrudt før HTTP/1.1.
Dette tydede på, at flaget muligvis var blevet splittet over flere felter i loggen.

Jeg identificerede IP-adressen fra den mistænkelige request og søgte derefter på alle requests fra samme IP:

1
grep "192.168.1.99" access.log

Her fandt jeg en efterfølgende request, hvor resten af flaget lå gemt i Referer-feltet.

Den indeholdt:

1
_L0g_An4lys1s}

Angrebet

Jeg samlede de to dele:

  • Fra request:

    1
    
    DDC{Tim3_Tr4v3l
    
  • Fra referer:

    1
    
    _L0g_An4lys1s}
    

Og ved at kombinere dem fik jeg det fulde flag.


Flaget

Det fulde flag var:

1
DDC{Tim3_Tr4v3l_L0g_An4lys1s}

Konklusion

Challengen demonstrerede, hvordan data kan skjules i forskellige felter i en logfil, og hvordan man ved systematisk gennemgang kan rekonstruere splittet input.

Ved at analysere både request- og referer-felter fra samme IP lykkedes det mig at samle flaget korrekt.