JWT Hyökkäykset

Älä Tarkasta Tätä Tokenia Kiitos - JWT:n Pahamaineinen 'None' Algoritmi

Helppo
30 min

"None" Algoritmi

Yksi JWT:n "allekirjoitusalgoritmeista" on "None", eli ei allekirjoitusta lainkaan. Jos sovellus hyväksyy tällaisia tokeneita, vaikka kehittäjä ei ole tullut sitä ajatelleeksi, ovat seuraukset katastrofaaliset. JWT-tokeni jonka allekirjoitusalgoritmi on "None" näyttää tältä:

1. Vaihe - Hanki token

Hanki käsiisi JWT-token jonka sovellus sinulle antaa. Näet tämän burpin HTTP-historiasta, kun kutsut sovelluksen toimintoja joiden mukana token lähtee.

2. Vaihe - Lähetä HTTP-pyyntö repeaterille

Lähetä tokenin sisältävä HTTP-pyyntö repeateriin niin, että pystyt lähettämään pyyntöä uudestaan ja uudestaan, muokaten aina tokenia, ja näet että milloin sovellus hyväksyy muokatun tokenin, jolloin hyökkäys onnistuu.

3. Vaihe - Muokkaa tokenia

Pura token, vaihda sen JOSE-headerin algoritmin (alg) arvoksi "None", ja kasaa token uudestaan. Voit tehdä tämän parilla eri tapaa, yksi vaihtoehto on Hakatemian JWT studiossa (Työkalut -> JWT Studio):

Toinen vaihtoehto on käyttää BurpSuiten "JSON Web Tokens" laajennusta:

4. Vaihe - Voitto

Kasattuasi uuden JWT:n, korvaa sillä HTTP-pyynnössä alunperin ollut tokeni, ja lähetä pyyntö uudestaan.

JWT Tarkastuksen Ohitus - 'None' Algoritmi

Tässä labrassa pääset tekemään ensimmäisen JWT-hyökkäyksesi. Tarkoitus on kirjautua sovellukseen tavallisena käyttäjänä ja saadan token jonka "admin" claimin arvo on false. Muokkaa sitten tokenia hyödyntäen tässä moduulissa oppimaasi tekniikkaa niin, että "admin" claimin arvo on true. Lue lopuksi lippu /api/v1/flag -rajapinnasta.

Tavoite

Lue lippu /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ä.