JWT Hyökkäykset

JWT Key Confusion Hyökkäykset kun Julkista Avainta ei Tiedetä

Vaikea
30 min

Julkisen avaimen päättely

Kun JWT on allekirjoitettu asymmetrisellä algoritmilla, allekirjoitukseen käytetyn yksityisen avaimen parin, eli julkisen avaimen, voi joskus päätellä matematiikalla. Laskentakaava perustuu tähän StackExchange keskusteluun: https://crypto.stackexchange.com/questions/30289/is-it-possible-to-recover-an-rsa-modulus-from-its-signatures/30301#30301

Kaavaa ei tarvitse ymmärtää, GitHubista löytyy jo työkalu jolla laskenta on toteutettu.

Työkalun asennus

Käynnistä hyökkääjän terminaali alta. Kloonaa GitHubista silentsignal/rsa_sign2n.git repo:

git clone https://github.com/silentsignal/rsa_sign2n.git

Asenna sitten työkalun riippuvuudet:

cd rsa_sign2n/CVE-2017-11424/
pip3.8 install -r requirements.txt

Valmista.

Tokenien hankinta

Tarvitset kaksi eri JWT-tokenia jotta työkalu voi toimia. Saat nämä harjoitustehtävässä kirjautumalla sisään, lähettämällä HTTP-pyynnön flag-osoitteeseen, ja ottamalla JWT:n talteen kuten aiemmissakin moduuleissa. Sitten vain kirjaudut ulos, takaisin sisään, ja toistat, niin saat seuraavankin JWT:n talteen.

Työkalun ajaminen

Lopuksi vain ajat skriptin x_CVE-2017-11424.py, antaen sille parametreiksi JWT-tokenit, ja toivot parasta. Jos hyökkäys onnistuu ja saat julkisen avaimen, voit kokeilla onko sovellus haavoittuva key confusion -hyökkäyksille avain kuten edellisessä moduulissa.

Key Confusion ilman Julkista Avainta

Tässä labrassa pääset harjoittelemaan JWT:n julkisen avaimen laskentaa kahden JWT:n perusteella, kun julkista avainta ei ole tiedossa.

Tavoite

Lue flagi osoitteesta /api/v1/flag.

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ä.