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
Outils/GitHubGitHub/password123456/some-tweak-to-hide-jwt-payload-values
Outils de Chiffrement/DéchiffrementAuthentificationApprentissage et ÉducationSécurité des API
GitHubpassword123456/some-tweak-to-hide-jwt-payload-values

some-tweak-to-hide-jwt-payload-values

Bibliothèque Python légère pour obscurcir les valeurs de payload JWT en utilisant le chiffrement XOR avec des clés basées sur le timestamp, empêchant le décodage en texte clair de revendications sensibles comme les identifiants utilisateur.

Voir le dépôt

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
104il y a 2 ansPas encore vérifié

une-astuce-pour-cacher-les-valeurs-du-payload-jwt

made-with-python Python Versions Hits

  • une poignée d'astuces et d'idées pour sécuriser le payload JWT, rendant vaine toute tentative de décodage en modifiant constamment sa valeur,
    garantissant que le résultat décodé reste inintelligible tout en imposant une surcharge de performance minimale.

Qu'est-ce qu'un token JWT ?

Un JSON Web Token (JWT, prononcé "jote") est un moyen compact et sûr pour URL de passer un message JSON entre deux parties. C'est une norme, définie dans la RFC 7519. Le token est une longue chaîne, divisée en parties séparées par des points. Chaque partie est encodée en base64 URL.

Les parties du token dépendent du type de JWT : s'il s'agit d'un JWS (token signé) ou d'un JWE (token chiffré). Si le token est signé, il aura trois sections : l'en-tête, la charge utile (payload) et la signature. Si le token est chiffré, il se compose de cinq parties : l'en-tête, la clé chiffrée, le vecteur d'initialisation, le texte chiffré (payload) et le tag d'authentification. Le cas d'utilisation le plus courant des JWT est probablement de les utiliser comme jetons d'accès et jetons d'identité dans les flux OAuth et OpenID Connect, mais ils peuvent également servir à d'autres fins.

Objectif principal de cet extrait de code

Cet extrait de code propose une perspective d'astuce visant à améliorer la sécurité de la section du payload lors du décodage des tokens JWT, où les clés stockées sont visibles en texte clair. Cet extrait de code propose une perspective d'astuce visant à améliorer la sécurité de la section du payload lors du décodage des tokens JWT. Généralement, la section du payload apparaît en texte clair lorsqu'elle est décodée à partir du token JWT (base64). L'objectif principal est de chiffrer légèrement ou d'obfusquer les valeurs du payload, rendant difficile la compréhension de leur signification. L'intention est de garantir que même si quelqu'un tente de décoder les valeurs du payload, il ne pourra pas le faire facilement.

userid

  • L'extrait de code cible la clé nommée "userid" stockée dans la section du payload à titre d'exemple.
  • Le choix de "userid" vient de son utilisation fréquente à des fins d'identification ou d'authentification de l'utilisateur après validation de la validité du token (par exemple, en s'assurant qu'il n'a pas expiré).

L'idée derrière la tentative d'obfusquer la valeur de la clé nommée "userid" est la suivante :

Chiffrement :

  • L'horodatage est haché puis chiffré en effectuant une opération XOR bit à bit avec l'ID utilisateur.
  • L'opération XOR est effectuée à l'aide d'une clé symétrique.
  • La valeur résultante est ensuite encodée en Base64.

Déchiffrement :

  • Les données chiffrées sont décodées en Base64.
  • Le déchiffrement est effectué par une opération XOR avec la clé symétrique.
  • L'ID utilisateur original et l'horodatage haché sont révélés en texte clair.
  • La partie ID utilisateur est extraite en divisant au niveau du délimiteur "|" pour une utilisation et des fins pertinentes.

Clé symétrique pour l'encodage XOR :

  • Divers matériaux peuvent être utilisés pour cette clé.
  • Cela pourrait être un sel utilisé dans le hachage conventionnel de mots de passe, une chaîne aléatoire arbitraire, un UUID généré, ou tout autre matériau approprié.
  • Cependant, cette clé doit être stockée de manière sécurisée dans le système de gestion de base de données (SGBD).

et..^^

root@kitploit:~
in the example, the key is shown as { 'userid': 'random_value' },
making it apparent that it represents a user ID.

However, this is merely for illustrative purposes.

In practice, a predetermined and undisclosed name is typically used.
For example, 'a': 'changing_random_value'

Remarques

  • Cet extrait de code est créé à des fins éducatives et sert de point de départ pour des idées plutôt que d'être intrinsèquement sécurisé.
  • Il offre un niveau de sécurité au-delà de la visibilité en texte clair mais ne garantit pas une sécurité absolue.

Tenter de falsifier des tokens JWT générés avec cette méthode nécessite l'accès à la fois à la clé secrète JWT et à la clé symétrique XOR utilisée pour créer le UserID.

Et...

  • Si vous trouvez cela utile, veuillez attribuer une "étoile"🌟 pour soutenir les améliorations futures.

aperçu

root@kitploit:~
# python3 main.py

- Current Unix Timestamp: 1709160368
- Current Unix Timestamp to Human Readable: 2024-02-29 07:46:08

- userid: 23243232
- XOR Symmetric key: b'generally_user_salt_or_hash_or_random_uuid_this_value_must_be_in_dbms'
- JWT Secret key: yes_your_service_jwt_secret_key

- Encoded UserID and Timestamp: VVZcUUFTX14FOkdEUUFpEVZfTWwKEGkLUxUKawtHOkAAW1RXDGYWQAo=
- Decoded UserID and Hashed Timestamp: 23243232|e27436b7393eb6c2fb4d5e2a508a9c5c

- JWT Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aW1lc3RhbXAiOiIyMDI0LTAyLTI5IDA3OjQ2OjA4IiwidXNlcmlkIjoiVlZaY1VVRlRYMTRGT2tkRVVVRnBFVlpmVFd3S0VHa0xVeFVLYXd0SE9rQUFXMVJYREdZV1FBbz0ifQ.bM_6cBZHdXhMZjyefr6YO5n5X51SzXjyBUEzFiBaZ7Q
- Decoded JWT: {'timestamp': '2024-02-29 07:46:08', 'userid': 'VVZcUUFTX14FOkdEUUFpEVZfTWwKEGkLUxUKawtHOkAAW1RXDGYWQAo='}


# run again
- Decoded JWT: {'timestamp': '2024-02-29 08:16:36', 'userid': 'VVZcUUFTX14FaRNAVBRpRQcORmtWRGleVUtRZlYXaBZZCgYOWGlDR10='}
- Decoded JWT: {'timestamp': '2024-02-29 08:16:51', 'userid': 'VVZcUUFTX14FZxMRVUdnEgJZEmxfRztRVUBabAsRZkdVVlJWWztGQVA='}
- Decoded JWT: {'timestamp': '2024-02-29 08:17:01', 'userid': 'VVZcUUFTX14FbxYQUkM8RVRZEmkLRWsNUBYNb1sQPREFDFYKDmYRQV4='}
- Decoded JWT: {'timestamp': '2024-02-29 08:17:09', 'userid': 'VVZcUUFTX14FbUNEVEVqEFlaTGoKQjxZBRULOlpGPUtSClALWD5GRAs='}

img

Télécharger l’outil