====== Zadatak s natjecanja Hacknite 2026 - Sportske Pohvalnice ====== Neo je izgubio svoju digitalnu pohvalnicu, možeš li mu pomoći pronaći je? http://chal.platforma.hacknite.hr:14072/ ====Kontekst zadatka==== Nakon pristupa stranici zadatka, prikazuje se "Platforma za pohranu i osiguravanje integriteta sportskih pohvalnica". Stranica u izborniku prikazuje tri podstranice: **Istaknuti sportaši**, **Primjeri pohvalnica** i **Generator primjera pohvalnica**. Također, u opisu karakteristika i funkcionalnosti sustava mogu se vidjeti zanimljivije informacije: Svakoj pohvalnici dodjeljuje se jedinstveni sažetak podataka na temelju njezina sadržaja. Čak i ako se format pohvalnice promijeni, njezin sažetak podataka ostaje isti jer se temelji isključivo na sadržaju Podaci o pohvalnicama sigurno se pohranjuju koristeći sustav adresiranja temeljen na njihovom integritetnom sažetku. Dohvat primjera pohvalnice: {{:hacknite2026:spohvalnice_primjer.png?nolink&1000 | Slika 1 - Primjer pohvalnice}} Na dnu pohvalnice može se vidjeti **integritetni sažetak podataka**: 32c542e659b3ee2c1400de1540a89bbc4ab3e00a8633d04face4c4f6452855e0 Sažetak je duljine 64 znaka i sadrži samo heksadecimalne znakove, što potencijalno upućuje na **SHA-256** algoritam. Također se može vidjeti da se ovaj dokument dohvaća s pomoću prikazanog sažetka: http://chal.platforma.hacknite.hr:14072/view?doc=32c542e659b3ee2c1400de1540a89bbc4ab3e00a8633d04face4c4f6452855e0 ====Pronalazak ranjivosti==== Ovo upućuje na to da se poznavanjem ili pogađanjem sadržaja dokumenta može dobiti njegov sažetak, koji se može koristiti za dohvat postojećeg dokumenta s poslužitelja. Korištenjem generatora pohvalnica mogu se unijeti isti podatci prikazani na primjernoj pohvalnici: {{:hacknite2026:spohvalnice_generiranje_pohvalnice.png?nolink&1000 | Slika 2 - Generirani primjer pohvalnice}} Slanjem ovog zahtjeva generira se primjer pohvalnice: {{:hacknite2026:spohvalnice_generirani_primjer.png?nolink&1000 | Slika 3 - Generirani primjer pohvalnice}} Može se primijetiti da je **integritetni sažetak podataka** isti kao na dohvaćenom primjeru pohvalnice s poslužitelja: 32c542e659b3ee2c1400de1540a89bbc4ab3e00a8633d04face4c4f6452855e0 Može se zaključiti da se na temelju unesenih podataka izračunao **SHA-256** sažetak koji se koristi kao integritetni sažetak podataka i kao referenca za dohvat pohvalnica s poslužitelja. Pokušajem lokalnog računanja sažetka nad unesenim podatcima može se dobiti isti sažetak: $ echo -n "IvanGrlicaKošarkaKošarKraš2024-01-01" | sha256sum 32c542e659b3ee2c1400de1540a89bbc4ab3e00a8633d04face4c4f6452855e0 - ====Iskorištavanje ranjivosti==== Na podstranici **Istaknuti sportaši** može se vidjeti "Josip Jankić", za kojega su definirani svi podatci koji se unose pri generiranju primjera pohvalnice: Josip Jankić Košarka Josip je odličan košarkaš iz kluba Klokani, svoju pohvalnicu je dobio na prvi dan 2026. godine. Ako se generira pohvalnica kojoj se unesu ovi podatci kao vrijednosti, generirana pohvalnica ima sljedeći sažetak: f1b2dd586e34a5fb190fee04c330db07ec3e0b0585912bed0b0968e23fc4e8f7 Ovaj sažetak se može koristiti kao referenca za dohvat dokumenta s poslužitelja: http://chal.platforma.hacknite.hr:14072/view?doc=f1b2dd586e34a5fb190fee04c330db07ec3e0b0585912bed0b0968e23fc4e8f7 Vidi se da za ovaj zahtjev poslužitelj vraća stvarnu pohvalnicu iz datotečnog sustava koja nema natpis ''OVO JE GENERIRANI PRIMJER POHVALNICE - NIJE STVARNA POHVALNICA'' ili ''OVO JE PRIMJER POHVALNICE'' te kod pohvalnice nema nule kao vrijednost. U zadatku je navedeno da se traži sportska pohvalnica za "Nea", za kojega se podatci također mogu pronaći pod **istaknuti sportaši**. Neo Andrić Nogomet Odličan nogometaš iz kluba NogoMetar, dobio je pohvalnicu u lipnju 2025. Ovime su definirani skoro svi podatci potrebni za generiranje pohvalnice "Nea Andrića", poznato je ime i prezime, sport i klub te godina i mjesec dobivanja pohvalnice, jedino dan nije poznat. Lipanj ima 30 dana, što znači da je potrebno generirati 30 mogućih sažetaka za pohvalnicu Nea Andrića, jedna pohvalnica za svaki dan mjeseca. To se može napraviti tako da se podatci unesu u generator primjera pohvalnica, a zatim se pokuša dohvatiti dokument s pomoću generiranog sažetka. Sažetci se mogu i lokalno izračunati: {{:hacknite2026:spohvalnice_neo_andric.png?nolink&1000 | Slika 4 - Generiranje pohvalnice Nea}} Za ovaj se unos dobiva pohvalnica sa sljedećim sažetkom: {{:hacknite2026:spohvalnice_generirani_primjer_neo_andric.png?nolink&1000 | Slika 5 - Generirani primjer pohvalnice Nea}} Dobiven sažetak: 21d52960d2ebf74fa3e5af3e5fc8271919343939a4ee6010412f15f04dc2a34d Ovaj sažetak se također može dobiti lokalno: $ echo -n "NeoAndrićNogometNogoMetar2025-06-27" | sha256sum 21d52960d2ebf74fa3e5af3e5fc8271919343939a4ee6010412f15f04dc2a34d - Dohvatom dokumenata korištenjem dobivenih sažetaka kao reference može se vidjeti da samo za pohvalnicu kojoj je kao dan postavljena vrijednost **27** postoji dokument: http://chal.platforma.hacknite.hr:14072/view?doc=21d52960d2ebf74fa3e5af3e5fc8271919343939a4ee6010412f15f04dc2a34d Slanjem ovog zahtjeva dohvaća se s poslužitelja pohvalnica Nea Andrića, na kojoj je prikazan i flag: {{:hacknite2026:spohvalnice_pohvalnica_neo_andric.png?nolink&1000 | Slika 6 - Pohvalnica Nea Andrića}}