JWT Hyökkäykset

JWT ja Salausavaimen Murtaminen

Helppo
30 min

Heikko salaisuus

JWT:n turvallisuus on täysin sen varassa, ettei hyökkääjä arvaa salaisuutta tai salausavainta jota sen allekirjoituksessa on käytetty.

Tätä voimme kokeilla erilaisilla työkaluilla kuten hashcat tai JTR (john the ripper) jotka on suunniteltu niin, että ne yrittävät arvailla JWT:n salaisuutta huimaa vauhtia.

Algoritmin selvittäminen

Ensimmäinen vaihe on selvittää, millä algoritmilla JWT on allekirjoitettu. Tämän saa selville, kuten olemme oppineet, JOSE-otsakkeesta. Voit purkaa JWT:n Hakatemian JWT-studiossa, tai vaikkapa jwt.io -sivustolla.

Tässä tapauksessa algoritmi oli HS256, eli HMAC SHA256.

John the Ripper

Voimme listata JTR:n tuetut algoritmit ja hakea seasta HMAC-algoritmeja esimerkiksi näin:

Näistä oikea on HMAC-SHA256. JWT-muotoa JTR tukee automaattisesti, sitä ei siis tarvitse erikseen kertoa.

Aloita kirjoittamalla token tiedostoon token.txt, esim:

Tarvitset myös salasanalistan, sellainen löytyy harjoitustehtävän koneelta polusta /usr/share/wordlists/rockyou.txt.

Sitten vain käynnistä JTR seuraavasti:

Jos JWT on allekirjoitutettu käyttämällä salaisuutena jotain listasta löytyvää sanaa, se löytyy hetkessä.

Murretun salaisuuden käyttäminen

Kun salaisuus on tiedossa, sillä on helppo allekirjoittaa uusia tokeneita vaikkapa JWT-studiossa:

Harjoitus

Kokeilehan samaa itse! JWT:n saat taas kun kurkistat burpilla HTTP-liikenteen sisään yrittäessäsi hakea flagia.

JWT Salaisuuden Murtaminen

Tässä labrassa pääset kräkkäilemään JWT-tokenin salausavainta JTR (john the ripper) -työkalulla.

Tavoite

Lue flagi /api/v1/flag -rajapinnasta.

Tehtävät

Flag

Löydä lippu (flag) labraympäristöstä ja syötä se alle.

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.