Älä Tarkasta Tätä Tokenia Kiitos - JWT:n Pahamaineinen 'None' Algoritmi
"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.
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ä.