Hoe hackers JWT token authenticatie omzeilen.

In dit blog wordt verteld over het omezeilen van een JWT Token Authenticatie

JSON Web Tokens (JWT) zijn een populaire manier van authenticatie en autorisatie in webapplicaties. Een JWT-token is een compacte, URL-veilige manier om claims tussen partijen over te dragen. Het is opgebouwd uit drie delen: de header, de payload en de handtekening. De header bevat informatie over het type token en de gebruikte algoritmes, de payload bevat de claims (gebruikersgegevens) en de handtekening wordt gebruikt om de integriteit van de token te verifiëren.

1. Hergebruik van tokens

Als een hacker een geldige JWT-token steelt, kan hij deze gebruiken om toegang te krijgen tot beveiligde bronnen zonder de juiste authenticatie. Dit kan gebeuren als de JWT-tokens niet goed worden beheerd of als de server niet goed is geconfigureerd om JWT-tokens na een bepaalde tijd automatisch te verlopen. Als een token niet op tijd verloopt, kan een hacker de gestolen token opnieuw gebruiken om toegang te krijgen tot beveiligde bronnen.

2. Payload van token aanpassen

Een hacker kan proberen de inhoud van de JWT-token te manipuleren, bijvoorbeeld door de handtekening te veranderen of door de inhoud van het token te wijzigen. Als de hacker de handtekening kan aanpassen, kan hij toegang krijgen tot bronnen die alleen beschikbaar zijn voor geauthenticeerde gebruikers. Als de inhoud van het token wordt gewijzigd, kan de hacker zich bijvoorbeeld voordoen als een andere gebruiker om toegang te krijgen tot beveiligde bronnen. In het onderstaande voorbeeld zet de hacker zijn rol om van is_admin:false naar is_admin:true


{
  "sub": "1234567890",
  "name": "Bob de jong",
  "is_admin": false
}

Er kan ervan worden gemaakt dat deze user ‘admin’ is, als er geen goede validatie zit op handtekening.


{
  "sub": "1234567890",
  "name": "Bob de jong",
  "is_admin": true
}

3. Bruteforce van JWT tokens.

Een andere manier waarop hackers proberen JWT-tokens te kraken, is door middel van bruteforcing. Dit houdt in dat de hacker probeert de handtekening van de token te raden door systematisch verschillende combinaties van gegevens te proberen totdat de juiste handtekening is gevonden.

De handtekening van een JWT-token wordt gegenereerd door een cryptografisch algoritme zoals HMAC of RSA, dat een geheime sleutel gebruikt. Als de hacker deze sleutel kan achterhalen, kan hij de handtekening van de token genereren en zichzelf toegang geven tot beveiligde bronnen.

Om te bruteforcen, kan de hacker bijvoorbeeld een lijst met veelgebruikte wachtwoorden of sleutels gebruiken en deze proberen totdat de juiste sleutel wordt gevonden. Dit kan echter een langdurig en tijdrovend proces zijn, vooral als de sleutel sterk en complex is.

Om het bruteforcen te voorkomen, is het belangrijk om een sterke en complexe sleutel te gebruiken voor het genereren van de handtekening van de JWT-token. Dit betekent dat de sleutel lang genoeg moet zijn en bestaat uit een combinatie van hoofdletters, kleine letters, cijfers en speciale tekens.

Je kunt zelf proberen of de JWT token bij jouw organisatatie veilig is door een tool als jwt-cracker te gebruiken. Deze tool is hier op github te vinden.

Voorbeeld

jwt-cracker -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ -a abcdefghijklmnopqrstuwxyz --max 6

Cyber Security controleren?

Mocht jij ondanks deze blog nog steeds vragen hebben over de Cyber Security maatregelen die jullie treffen? Neem dan eens contact met ons op. Bij Tozetta zijn wij altijd bereid om vrijblijvend mee te denken. Indien een eerste gratis scan aanleiding geeft tot het uitvoeren van een Pentest kunnen wij dit altijd bespreekbaar maken.

Kosteloos 1 uur pentesten?

Bij Tozetta kun je vrijblijvend een Pentest Quickscan aanvragen. Tijdens de Quickscan gaat een ethisch hacker kosteloos één uur een pentest uitvoeren. In dit uur maakt de ethisch hacker het aanvalsoppervlak inzichtelijk. Op basis hiervan kan een  urenindicatie voor jullie vraagstuk worden bepaald en krijgen jullie inzicht in de mogelijke pentest kosten. Interesse in een pentest uitvoeren? Vul vrijblijvend onderstaand formulier in!

Vraag een Quickscan aan

Pentest rapport Tozetta Cyber Security