Opis

Zadanie polegało na interakcji z aplikacją webową przypominającą grę z nagrodami. Użytkownik może otwierać skrzynie, a każda z nich wywołuje zapytanie do API. Jedna z nagród zawiera ukrytą flagę — wystarczyło ją odnaleźć poprzez analizę działania aplikacji.

Rozwiązanie

  1. Znajdź legendarny przedmiot w kodzie HTML
    W narzędziach deweloperskich przeglądarki (zakładka „Elements”/„Inspect”) można znaleźć element reprezentujący legendarny przedmiot. Jego atrybut data-reward-id ma wartość 5231242.
  2. Analiza działania API
    W zakładce „Network” widzimy, że po otwarciu skrzyni aplikacja wysyła żądanie GET do endpointu /api/cat/[id].
  3. Ręczne zapytanie do API
    Można ręcznie wykonać zapytanie GET /api/reward/5231242, np. przez przeglądarkę lub narzędzia takie jak curl/postman, np.:
    curl https://skrzynie-z-kotami.hack4krak.pl/api/reward/5231242
    
  4. Odczytanie flagi
    W odpowiedzi serwer zwraca dane, w których ukryta jest flaga.

Podsumowanie

Całość sprowadza się do znalezienia właściwego ID (5231242) i wywołania odpowiedniego endpointu. To klasyczny przykład zadania typu „security through obscurity”, gdzie backend zdradza więcej niż frontend pokazuje.