This is an old revision of the document!
Tema
Task 1 - Break authentication (50p)
Capture-the-flag: doriti ca sa capturati flag-ul unui server care este protejat sub un cont administrativ. Va trebui sa obinem un tag valid de administrator. Se observa ca serverul ne da un cont de guest care insa nu are access la flag. Din fericire am reusit sa extragem codul sursa al serverului dar se pare ca secretul nu este in codul sursa.
Flag format: “CTF{(secret)}”
Acest exercitiu va testa capacitatea de a intelege constructii criptografice analizand cod sursa si folosirea de criptanaliza pentru a demonstra ca un cipher este nesigur. In final va fi nevoie sa construiti un proof-of-concept care demonstreaza un atac eficient, executand atacul impotriva unui server.
Recomandare de rezolvare:
Intelegerea codului sursa si a parametriilor care lipsesc din el.
Notarea parametriilor constanti cunoscuti si necunoscuti (eg: siruri de caractere, lungimi, etc.)
Extragerea parametriilor de pe server
Atac impotriva algoritmului
In prima faza puteti descarca serverul
Creati un fisier cu secretz, adaugati parametrii extrasi din pasul 2, si inlocuiti flag-ul cu o valoare dummy
Rulati serverul local. Puteti sa modificati codul sursa al serverului offline. Recomandarea este sa folositi metode de debugging si sa atacati algoritmul pe bucati
Replicati atacul pe serverul online de la adresa mentionata
???
Capture the flag $
Source-code server:
- server.py
Serverul se găsește la adresa: TODO
Pentru testare conexiune incercati sa folositi netcat:
nc TODO
Pentru interactiune automata cu serverul aveti la dispozitie urmatorul schelet de cod care necesita pachetul pwntools.
Pentru instalare:
pip3 install pwntools
- skel.py
Atentie! In cazul in care se trimit prea multe request-uri serverul va actiona un rate-limiting. Recomandarea este ca sa puneti un *sleep* atunci cand trimiteti pachete in cadrul unei structuri repetitive.
Task 2 - TODO (50p)