Comment tester les attaques JWT ?
Salut tout le monde dans ce blog je vais essayer de résumer les attaques JWT
Nous allons parler de 3 principaux points solides
- Que sont les JWT ?
- Que sont les attaques JWT ?
- Scénarios sur les attaques JWT
Commençons !!
- Que sont les JWT ?
Les jetons Web JSON (JWT) sont un format normalisé pour l'envoi de données JSON signées par chiffrement entre les systèmes. Contrairement aux jetons de session classiques, toutes les données dont un serveur a besoin sont stockées côté client dans le JWT lui-même.
Un JWT se compose de 3 parties : un en-tête , une charge utile et une signature . Ceux-ci sont chacun séparés par un point.xxxxx.yyyyy.zzzzz
Les parties d'en- tête et de charge utile d'un JWT ne sont que des objets JSON codés en base64url . Dans la plupart des cas, les données d'en-tête et de charge utile peuvent être facilement lues ou modifiées par toute personne ayant accès au jeton. Par conséquent, la sécurité de tout mécanisme basé sur JWT dépend fortement de la signature cryptographique .
Pour créer la partie signature, vous devez prendre l'en-tête encodé , la charge utile encodée , un secret , l'algorithme spécifié dans l'en-tête et le signer .
- Que sont les attaques JWT ?
Les attaques JWT impliquent qu'un utilisateur envoie des JWT modifiés au serveur afin d'atteindre un objectif malveillant.
- Scénarios sur les attaques JWT
Pour résumer l'idée que nous avons, un seul objectif est de jouer avec la signature. nous pouvons jouer avec la signature en jouant avec le contenu de la signature (charge utile - "alg" de l'en-tête - en-tête - secret - signe tout ce qui est mentionné). nous avons 7 scénarios dans ce blog et j'utiliserai l'extension JWT Editor, pour en savoir plus à partir d' ici
- Le premier scénario : (jouer avec la charge utile uniquement)
- le deuxième scénario : (jouer avec la charge utile & "alg" )
{
"alg": "none",
"typ": "JWT"
}
Testez les clés secrètes Brute-forcing à l'aide de hashcat, puis utilisez la sortie et codez-la et cliquez sur Nouvelle clé symétrique et remplacez la valeur générée pour la kpropriété par le secret codé en Base64.
hashcat -a 0 -m 16500 <jwt> <wordlist>
Testez l' injection de JWT auto-signés via le jwkparamètre en cliquant sur Nouvelle clé RSA et générer jwkpuis attaquez avec JWK intégré
- Le cinquième scénario : (jouer avec l'en-tête via un serveur externe)
{
"keys": [
]
}
- Le sixième scénario :
- Le septième scénario :
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































