Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
some-tweak-to-hide-jwt-payload-values — Libreria Python leggera per offuscare i valori del payload JWT utilizzando la crittografia XOR con chiavi basate su timestamp, impedendo la decodifica in chiaro di claim sensibili come gli ID utente. | Kitploit
Strumenti/GitHubGitHub/password123456/some-tweak-to-hide-jwt-payload-values
Strumenti di Crittografia/DecrittografiaAutenticazioneApprendimento e FormazioneSicurezza delle API
GitHubpassword123456/some-tweak-to-hide-jwt-payload-values

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

Libreria Python leggera per offuscare i valori del payload JWT utilizzando la crittografia XOR con chiavi basate su timestamp, impedendo la decodifica in chiaro di claim sensibili come gli ID utente.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
1042 anni faNon ancora revisionato

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

made-with-python Python Versions Hits

  • una manciata di tweaks e idee per proteggere il payload JWT, rendendo inutile il tentativo di decodifica modificandone costantemente il valore,
    assicurando che l'output decodificato rimanga incomprensibile pur imponendo un overhead di prestazioni minimo.

Cos'è un JWT Token?

Un JSON Web Token (JWT, pronunciato "jot") è un modo compatto e URL-safe per passare un messaggio JSON tra due parti. È uno standard, definito nell'RFC 7519. Il token è una lunga stringa, divisa in parti separate da punti. Ogni parte è codificata in base64 URL.

Le parti del token dipendono dal tipo di JWT: se è un JWS (token firmato) o un JWE (token crittografato). Se il token è firmato avrà tre sezioni: l'intestazione, il payload e la firma. Se il token è crittografato sarà composto da cinque parti: l'intestazione, la chiave crittografata, il vettore di inizializzazione, il testo cifrato (payload) e il tag di autenticazione. Probabilmente l'uso più comune dei JWT è come token di accesso e token ID nei flussi OAuth e OpenID Connect, ma possono servire anche ad altri scopi.

Obiettivo Principale di Questo Frammento di Codice

Questo frammento di codice offre una prospettiva di tweak mirata a migliorare la sicurezza della sezione payload durante la decodifica dei token JWT, dove le chiavi memorizzate sono visibili in chiaro. Questo frammento di codice fornisce una prospettiva di tweak per migliorare la sicurezza della sezione payload durante la decodifica dei token JWT. Tipicamente, la sezione payload appare in chiaro quando viene decodificata dal token JWT (base64). L'obiettivo principale è crittografare leggermente o offuscare i valori del payload, rendendo difficile comprenderne il significato. L'intenzione è garantire che anche se qualcuno tenta di decodificare i valori del payload, non possa farlo facilmente.

userid

  • Il frammento di codice prende di mira la chiave denominata "userid" memorizzata nella sezione payload come esempio.
  • La scelta di "userid" deriva dal suo uso frequente per l'identificazione o l'autenticazione dell'utente dopo aver validato la validità del token (ad esempio, assicurandosi che non sia scaduto).

L'idea alla base del tentativo di offuscare il valore della chiave denominata "userid" è la seguente:

Crittografia:

  • Il timestamp viene hashshato e poi crittografato eseguendo un'operazione XOR bit a bit con l'ID utente.
  • L'operazione XOR viene eseguita utilizzando una chiave simmetrica.
  • Il valore risultante viene quindi codificato in Base64.

Decrittografia:

  • I dati crittografati vengono decodificati utilizzando Base64.
  • La decrittografia viene eseguita mediante operazione XOR con la chiave simmetrica.
  • L'ID utente originale e il timestamp hashshato vengono rivelati in chiaro.
  • La parte dell'ID utente viene estratta dividendo al delimitatore "|" per usi e scopi pertinenti.

Chiave Simmetrica per la Codifica XOR:

  • È possibile utilizzare vari materiali per questa chiave.
  • Potrebbe essere un sale utilizzato nell'hashing delle password convenzionale, una stringa casuale arbitraria, un UUID generato o qualsiasi altro materiale adatto.
  • Tuttavia, questa chiave dovrebbe essere memorizzata in modo sicuro nel sistema di gestione del database (DBMS).

e..^^

root@kitploit:~
nell'esempio, la chiave è mostrata come { 'userid': 'random_value' },
rendendo evidente che rappresenta un ID utente.

Tuttavia, questo è solo a scopo illustrativo.

In pratica, viene tipicamente utilizzato un nome predeterminato e non divulgato.
Ad esempio, 'a': 'changing_random_value'

Note

  • Questo frammento di codice è creato a scopo educativo e funge da punto di partenza per idee piuttosto che essere intrinsecamente sicuro.
  • Fornisce un livello di sicurezza superiore alla visibilità in chiaro ma non garantisce la sicurezza assoluta.

Tentare di manomettere i token JWT generati con questo metodo richiede l'accesso sia alla chiave segreta JWT che alla chiave simmetrica XOR utilizzata per creare UserID.

E...

  • Se lo trovi utile, lascia una "stella" 🌟 per supportare ulteriori miglioramenti.

preview

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

Scarica lo strumento