Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
some-tweak-to-hide-jwt-payload-values — Leichte Python-Bibliothek zum Verschleiern von JWT-Payload-Werten mittels XOR-Verschlüsselung mit zeitstempelbasierten Schlüsseln, die eine Dekodierung sensibler Claims wie Benutzer-IDs im Klartext verhindert. | Kitploit
Tools/GitHubGitHub/password123456/some-tweak-to-hide-jwt-payload-values
Verschlüsselungs-/EntschlüsselungstoolsAuthentifizierungLernen & BildungAPI-Sicherheit
GitHubpassword123456/some-tweak-to-hide-jwt-payload-values

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

Leichte Python-Bibliothek zum Verschleiern von JWT-Payload-Werten mittels XOR-Verschlüsselung mit zeitstempelbasierten Schlüsseln, die eine Dekodierung sensibler Claims wie Benutzer-IDs im Klartext verhindert.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
104vor 2 JahrenNoch nicht geprüft

Ein kleiner Trick zum Verstecken von JWT-Payload-Werten

made-with-python Python Versions Hits

  • eine Handvoll Anpassungen und Ideen, um die JWT-Payload zu schützen, sodass der Versuch, sie durch ständige Änderung ihres Wertes zu dekodieren, sinnlos wird,
    während sichergestellt wird, dass die dekodierte Ausgabe unverständlich bleibt und die Leistung nur minimal beeinträchtigt wird.

Was ist ein JWT-Token?

Ein JSON Web Token (JWT, ausgesprochen "jot") ist eine kompakte und URL-sichere Möglichkeit, eine JSON-Nachricht zwischen zwei Parteien zu übermitteln. Es ist ein Standard, definiert in RFC 7519. Das Token ist eine lange Zeichenkette, die in durch Punkte getrennte Teile unterteilt ist. Jeder Teil ist base64-URL-kodiert.

Welche Teile das Token hat, hängt von der Art des JWT ab: ob es sich um ein JWS (ein signiertes Token) oder ein JWE (ein verschlüsseltes Token) handelt. Wenn das Token signiert ist, hat es drei Abschnitte: den Header, die Payload und die Signatur. Wenn das Token verschlüsselt ist, besteht es aus fünf Teilen: Header, verschlüsselter Schlüssel, Initialisierungsvektor, Chiffretext (Payload) und Authentifizierungs-Tag. Die wohl häufigste Verwendung von JWTs ist die als Zugriffstoken und ID-Token in OAuth- und OpenID-Connect-Abläufen, aber sie können auch für andere Zwecke verwendet werden.

Hauptziel dieses Code-Snippets

Dieses Code-Snippet bietet eine Perspektive für eine Anpassung, die darauf abzielt, die Sicherheit des Payload-Abschnitts beim Dekodieren von JWT-Tokens zu erhöhen, wenn die gespeicherten Schlüssel im Klartext sichtbar sind. Dieses Code-Snippet bietet eine Perspektive für eine Anpassung, die darauf abzielt, die Sicherheit des Payload-Abschnitts beim Dekodieren von JWT-Tokens zu erhöhen. Normalerweise erscheint der Payload-Abschnitt beim Dekodieren des JWT-Tokens (base64) im Klartext. Das Hauptziel ist es, die Payload-Werte leicht zu verschlüsseln oder zu verschleiern, sodass es schwierig ist, ihre Bedeutung zu erkennen. Die Absicht ist sicherzustellen, dass selbst wenn jemand versucht, die Payload-Werte zu dekodieren, dies nicht einfach möglich ist.

Benutzer-ID

  • Das Code-Snippet zielt als Beispiel auf den im Payload-Abschnitt gespeicherten Schlüssel namens "userid" ab.
  • Die Wahl von "userid" ergibt sich aus der häufigen Verwendung zur Benutzeridentifikation oder Authentifizierung nach der Überprüfung der Gültigkeit des Tokens (z.B. Sicherstellung, dass es nicht abgelaufen ist).

Die Idee hinter dem Versuch, den Wert des Schlüssels namens "userid" zu verschleiern, ist wie folgt:

Verschlüsselung:

  • Der Zeitstempel wird gehasht und dann durch bitweise XOR-Verknüpfung mit der Benutzer-ID verschlüsselt.
  • Die XOR-Operation wird mit einem symmetrischen Schlüssel durchgeführt.
  • Der resultierende Wert wird dann mit Base64 kodiert.

Entschlüsselung:

  • Die verschlüsselten Daten werden mit Base64 dekodiert.
  • Die Entschlüsselung erfolgt durch XOR-Verknüpfung mit dem symmetrischen Schlüssel.
  • Die ursprüngliche Benutzer-ID und der gehashte Zeitstempel werden im Klartext sichtbar.
  • Der Benutzer-ID-Teil wird durch Aufteilen am Trennzeichen "|" für die entsprechende Verwendung und Zwecke extrahiert.

Symmetrischer Schlüssel für die XOR-Kodierung:

  • Für diesen Schlüssel können verschiedene Materialien verwendet werden.
  • Es könnte ein Salt sein, das beim herkömmlichen Passwort-Hashing verwendet wird, ein beliebiger zufälliger String, eine generierte UUID oder ein anderes geeignetes Material.
  • Dieser Schlüssel sollte jedoch sicher im Datenbankmanagementsystem (DBMS) gespeichert werden.

und..^^

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'

Hinweise

  • Dieses Code-Snippet wurde zu Bildungszwecken erstellt und dient als Ausgangspunkt für Ideen, ist aber nicht von Natur aus sicher.
  • Es bietet ein Sicherheitsniveau, das über die Sichtbarkeit im Klartext hinausgeht, garantiert jedoch keine absolute Sicherheit.

Der Versuch, mit dieser Methode erstellte JWT-Tokens zu manipulieren, erfordert Zugriff sowohl auf den JWT-Geheimschlüssel als auch auf den symmetrischen XOR-Schlüssel, der zum Erstellen der Benutzer-ID verwendet wird.

Und...

  • Wenn Sie dies hilfreich finden, bitte "Star"🌟 geben, um weitere Verbesserungen zu unterstützen.

Vorschau

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

Tool herunterladen