Loading...
Iata si rezolvarile de pe 16.11.2019

Write Ups

  • Hacks 1 NET
  • Hacks 2 WEB
  • Hacks 3 MAIL
  • Hacks 4 MISC
  • Hacks 5 WARMUP

NET 100

Pcap

Primim un fisier pcap - o bucata de trafic interceptat. Se poate deschide in Wireshark, unde observam multe requesturi catre pastebin.com - dar daca cautam dupa string-ul flag gasim un request pentru "HEAD /raw/QxKXR0nR?flag", accesand adresa respectiva pe pastebin primim flag-ul.

NET 200

Verysecure

La adresa verysecure.emiahacks.com:1337 asculta un serviciu misterios, la care daca ne conectam (folosind netcat sau telnet) ne deconecteaza imediat dupa ce trimitem orice. Server-ul respectiv de fapt asculta pentru o conexiune TLS, daca ne conectam cu utilitarul openssl o sa vedem un prompt care ne cere parola "pass: ", iar parola o putem vedea in plaintext in campul "Organizational Unit" al certificatului TLS (pass: diffielelman). Daca introducem parola la prompt primim flag-ul.

NET 300

Zonegate

Primim nameserverul zone-gatekeeper.emiahacks.com - daca incercam sa il interogam pentru orice A records ne raspunde cu 1.3.3.7, mai putin pentru emiahacks.com care ne trimite spre CNAME-ul zone-gatekeeper.emiahacks.com. Interogand pentru zone-gatekeeper.emiahacks.com primim CNAME "sight.zone-gatekeeper.emiahacks.com.", si continuand sirul de interogari ajungem la ultimul CNAME "TeXTs.hidden.in.plain.sight.zone-gatekeeper.emiahacks.com". De aici ar trebui sa observam ca TXT e capitalizat, si sa interogam pentru recorduri TXT, primind inapoi 217 inregistrari, fiecare avand valoarea un simbol. Ordonand simbolurile dupa TTL-urile inregistrarilor TXT observam ca e un base64 record, decodandu-l primim flag-ul.

NET 400

Netpi

Scanand host-ul pi.emiahacks.com (de pe reteaua locala numai) gasim un port deschis, pe care ruleaza un webserver. Accesand webserverul gasim hint ca este vorba de fapt despre port knocking, si primim si porturile respective. Knockuind porturile respective, daca ne conectam din nou la portul webserverului suntem informati ca secventa a functionat si ca vom primi flag-ul. Interceptand traficul dinspre netpi inspre calculatorul de pe care am facut knockul o sa vedem un request http inapoi, iar ascultand pe portul respectiv si emuland un server web primim flag-ul.

WEB 100

Meth

Avem url-ul http://meth.emiahacks.com/flag, dar accesand-ul primim "405 Method Not Allowed". Incercand alte metode HTTP generice (POST, PUT, DELETE) primim acelasi mesaj la PUT, dar la POST si DELETE primim "405 Method Too Long", iar cu o metoda custom de 1 sau 2 caractere "405 Method Too Short". De aici ar trebui sa intelegem ca trebuie sa ghicim metoda corecta, si ca este din 3 caractere. Daca nu avem succes bruteforce-uind metoda, ar trebui sa observam headerul de "Method-Updated", care ne indica ca metoda corecta e regenerata la fiecare 10 secunde, deci trebuie sa ne miscam repede, sau sa incercam de mai multe ori.

WEB 200

Pacanele

Accesand http://pacanele.emiahacks.com vedem ca avem 3 inputuri pentru a introduce numerele corecte, pe care webserverul sa le compare cu cele magice si sa ne dea flag-ul. Daca introducem alte caractere in afara de numere primim hint spre "http://pacanele.emiahacks.com/source" de unde obtinem sursa, o aplicatie web Flask scrisa in Python.
Analizand sursa, gasim repede ruta POST "/gamble", chemata la completarea formularului cu numere. Vedem si ca numerele sunt generate aleator la momentul chemarii, intre 1 si 1000, deci nu exista sanse reale de un bruteforce. Observand insa ca generatorul de numere aleatoare este "seed-uit" cu parametrul "ts", mai exact timestampul trimis de browser, putem pregenera, folosind Python, pe calculatorul nostru seria de numere castigatoare pentru un "ts" ales de noi. Trimitand apoi acelasi request de POST, cu numerele pregenerate si cu parametrul "ts" corect, vom primi flag-ul.

WEB 300

Fakeflags

E un challenge de SQL Injection: accesand linkul verde pentru a primi un flag random si adaugand in url la parametrul id un single quote "'", primim `unrecognized token: "' limit 1"`. Explorand in DB, aflam ca e un SQLite, si dupa ce aflam tabelul si coloana cu flag-ul real, folosim un payload ca cel de mai jos pentru a obtine flag-ul: "http://localhost:8081/flag?id=8970 UNION SELECT this_is_the_column_you_want, 2, 3, 4, 5 FROM real_flags_right_here_bro"

WEB 400

Supportchat

Accesand http://supportchat.emiahacks.com/ intram automat pe un chat one-to-one, pe partea cealalta fiind admin, un bot care ne raspunde cu diverse reply-uri pregenerate. Daca ne uitam la cookie-uri, vedem chat_id, nick, si flag - flag avand valoarea NOPE{only_admin_has_this_set_srry}. Deci este un challenge de XSS, scopul fiind obtinerea cookie-ului flag de la admin.
Conversatia are loc peste un websocket, mesajele fiind trimise prin functia javascript "sendMessage()", care are o protectie simpla impotriva introducerii de HTML in mesaj. Peste protectia din sendMessage() se poate trece usor, merge sa inlocuim functia direct in browser cu o varianta unsafe. Incercand diverse payload-uri vedem ca sunt si alte caractere si tag-uri html filtrate server-side, si ca mesajul e transformat lowercase. De aici sunt mai payload-uri care merg, si mai multe modalitati de rezolvare, dar cel mai la indemana e sa faci admin-ul sa iti trimita el cookie-ul pe chat cu un payload de genul: sendMessage("

MAIL 100

Crazysmtpd

Conectandu-ne la crazysmtpd.emiahacks.com:25 primim din banner secventa corecta a comenzilor SMTP, generata aleator la fiecare conexiune. Scriind un client SMTP custom care sa urmeze secventa, si sa trimita numarul de NOOP-uri necesar, vom primi flag-ul.

MAIL 200

Secrete

Analizand secretele_internetului.pcap (Wireshark) vedem intai un request web spre RFC6409 - "Message Submission for Mail", ne va ajuta mai tarziu. Urmeaza o sesiune IMAP pe portul 143, dar nu putem analiza traficul intrucat este encriptat (TLS), dupa care spre acelasi IP o sesiune SMTP autentificata pe portul 587. Decodand userul si parola trimise plaintext base64, gasim userul si parola de autentificare, impreuna cu un email trimis cu o arhiva zip atasata - internet-greatest-secrets.zip. Downloadand arhiva din emailul trimis observam ca e protejata de parola. Pentru a obtine parola ne autentificam la serverul IMAP folosind userul si parola gasite mai devreme, iar in folderul Sent gasim emailul trimis cu parola pentru arhiva zip, in care gasim si flag-ul.

MISC 100

Candymountain

Ni se da arhiva f9c420ede8b843397e9b66ce965b3c88.tgz. Dezarhivand-o primim 8 parti in directorul blobs. Scopul este sa asamblam partile intr-o secventa corecta, care sa corespunda md5sum-ului f9c420ede8b843397e9b66ce965b3c88 - in acel moment va reprezenta o alta arhiva, care va contine si flag-ul.

MISC 200

Bezna

Primim imaginea https://emiahacks.com/ctf-static/bezna.png - o imagine complet neagra. Analizand-o vom gasi ca de fapt cativa pixeli nu sunt chiar negri, ci au valori RGB = 1, 0, 0, colorand acesti pixeli cu alta culoare vom putea vedea flag-ul.

MISC 300

Go-play

La adresa http://go-play.emiahacks.com/ ruleaza o varianta modificata a Go Playground-ului oficial ( https://play.golang.org/ ). Singura diferenta vizibila este ca la rularea programului avem si output-ul "flag init()ialized!". De aici ar trebui sa incercam sa analizam variabila ascunsa flag in cadrul programului nostru (de exemplu folosind fmt.Printf("%+v\n", flag)) - iar mai departe sa folosim modalitati, pachete si functii din go pentru a ajunge la valorea reala a flag-ului.

MISC 400

Werereallysorry

Primim imaginea https://emiahacks.com/ctf-static/flag.jpg.png - un PNG care contine efectiv in imagine hexdump-ul unei alte imagini JPG, in care se poate vizualiza flag-ul. Font-ul folosit este OpenDyslexic - se poate incerca folosirea tool-urilor online de OCR pentru o rezolvare rapida, impreuna cu corectarea unor erori. Alternativ, calea clasica de rezolvare este chiar scrierea unui software de OCR simplu: impartirea imaginii in imagini mici pentru fiecare simbol (fiind un hexdump setul de caractere este scurt) si compararea fiecarei imagini pentru a ajunge la simbolul corect.

WARMUP

Notb64

Primim fisierul http://emiahacks.com/ctf-static/notb64 - analizand setul de caractere vedem ca sunt numai 32, fisierul fiind de fapt encodat base32. Decodand recursiv base32 fisierul de cateva zeci de ori ajungem la flag.

WARMUP

Transfer

Conectandu-ne la transfer.emiahacks.com:1337 incepem sa primim date binare, iar analizand stream-ul (primii bytes macar) putem sa vedem ca e vorba de un fisier JPG. Salvand continutul ca o imagine JPG putem citi flag-ul.

WARMUP

Vm1 si Vm2

Pornind imaginea masinii virtuale si accesand cu browserul ip-ul acesteia primeam unul dintre flag-uri. Al doilea se gasea in /root/flag.txt, si se putea ajunge la el in mai multe feluri (eg: "drop to root shell prompt")
GOT SKILLS?

Pune-le la bataie, arata ca esti cel mai bun si castiga super premii!

Esti pasionat de tot ce inseamna tehnologie si esti mereu la curent cu noutatile? Aduna-ti fortele si depasteste provocarile pe care ti le-am pregatit intr-o competitie intensa. Am pus la cale o zi intreaga de hacking cu o multime de challenge-uri inovatoare care iti vor testa aptitudinile tehnice, cunoştinţele de logică şi de matematica, dar si creativitatea.
Crezi ca ii poti face fata? Atunci da curs provocarii noastre si demonstreaza-ne cat esti de talentat.
Inscrie-te in cursa pentru rezolvarea unor challenge-uri inedite! If you have what it takes, te poti lupta pentru suprematia in fata celorlalti concurenti. Uimeste-ne cu abilitatile si inteligenta ta.
0

Concurenti

0

Premii

0

Ore de hacking

0

Provocari

Capture The Flag is the name of the game!

Provocarile la care te vom supune, nu se vor rezuma doar la abilitatile tehnologice. Suprematia va fi castigata de cel care va gandi lucrurile in mod diferit, va apela la logica, stiinta si inovatie. Participa cei mai pasionati si talentati geeks cu diferite seturi de competente in tehnologie, codare si nu numai.
Trebuie sa gandesti out of the box si sa alegi calea cea mai buna, nu neaparat cea mai corecta. Gandesti diferit? Asta te va ajuta cu siguranta sa te numeri printre castigatori.
Participantii rezolva challenge-uri individuale si castiga puncte, in timp ce concurenta asista live la succesul lor. Vom proiecta clasamentul in timp real pentru a incuraja competitia.

7 Premii

Acordarea premiilor se va face in functie de rezultatele obtinute pe parcursul competitiei. Premiile vor fi acordate imediat dupa incheierea evenimentului in functie de clasament. In cazul putin probabil in care doi concurenti vor avea acelasi numar de puncte acestia vor trebui sa resolve un hack de departajare.

Locul 1

Xbox One X + Battlefield edition

Locul 2

Drona cu transmisie pe smartphone Syma W1

Locul 3

Casti AudioTechnica

Locul 4

FitBit Charge 3

Locul 5

Amazon Echo 2nd generation

Locul 6

Raspberry Pi 4 Model B

Locul 7

Chromecast 3

Inscrieri

Inscrieri pana pe 10 noiembrie

Spre deosebire de multe alte competitii de tip hackathon, nu va trebui sa faci un pitch de participare si nici sa te inscrii alaturi de o echipa. Pur si simplu trebuie sa completezi formularul de mai jos si sa rezolvi un mini-hack. Vom selecta cei mai rapizi, dar si cei mai creativi 50 de participanti.

INSCRIE-TE!

Fiecare inscris va primi un mail de confirmare la inscriere, iar apoi vom face clasamentul celor mai rapizi, inventivi si creativi care vor fi selectati sa participe la Hackathon pe 16 noiembrie. Echipa noastra va lua legatura cu ei telefonic pentru stabilirea ultimelor detalii.



Cum, unde, cand?

  • Cand
  • Unde
  • Cum

Sambata. 16 noiembrie 2019

9.00 - 23.00

IMPACT Hub Universitate,
str. Tudor Arghezi, 8-10

Ne gasiti in spatele TNB, fix vis-a-vis de benzinarie.

Competitie individuala CTF

Fiecare concurent se descurca singur si lupta pentru a face fata celor 20 de provocari.
Harta Impact Hub Universitate