tags: Data_Integrity_Failures session_hijack
Quando in una sessione è presente questa vulnerabilità possiamo ottenere la sessione di un altro utente semplicemente modificando il JWT presente nella sezione cookie della sessione:

Ci basta modifcare la sezione alg in none e la sezione username in admin ricodificare tutto il base64 e sostituire il cookie originale con quello modificato, la signature va lasciata vuota, ma l’ultimo punto deve essere comunque messo:

Per encodeare utilizza o questo sito jwt.io oppure il terminale di Linux con questa sintassi però:
# Header
echo -n '{"typ":"JWT","alg":"none"}' | base64 | tr '+/' '-_' | tr -d '='
# Payload
echo -n '{"username":"admin","exp":1759767010}' | base64 | tr '+/' '-_' | tr -d '='Se usi strumenti normali potrebbe codificare male spazi, uguali, ecc e l’attacco non avrebbe successo, quindi controlla sempre bene che sia ben codificato.
Ricorda:
-
NON formattare il JSON (niente spazi, niente newline)
-
Usa Base64URL (rimuovi
=finali, sostituisci+con-e/con_) -
Termina con un punto per la firma vuota (alg: none)