UUID Insecurities
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Basic Information
Gli Identificatori Universali Unici (UUID) sono numeri a 128 bit utilizzati per identificare univocamente le informazioni nei sistemi informatici. Gli UUID sono essenziali nelle applicazioni in cui sono necessari identificatori unici senza coordinamento centrale. Sono comunemente utilizzati come chiavi di database e possono riferirsi a vari elementi come documenti e sessioni.
Gli UUID sono progettati per essere unici e difficili da indovinare. Sono strutturati in un formato specifico, divisi in cinque gruppi rappresentati da 32 cifre esadecimali. Esistono diverse versioni di UUID, ognuna con scopi diversi:
- UUID v1 è basato sul tempo, incorporando il timestamp, la sequenza dellâorologio e lâID del nodo (indirizzo MAC), ma può potenzialmente esporre informazioni di sistema.
- UUID v2 è simile a v1 ma include modifiche per domini locali (non ampiamente utilizzato).
- UUID v3 e v5 generano UUID utilizzando valori hash da namespace e nome, con v3 che utilizza MD5 e v5 che utilizza SHA-1.
- UUID v4 è generato quasi interamente in modo casuale, fornendo un alto livello di anonimato ma con un leggero rischio di duplicati.
Tip
Nota che la versione e la sottoversione dellâUUID di solito appaiono nella stessa posizione allâinterno dellâUUID. Ad esempio in:
12345678 - abcd - 1a56 - a539 - 103755193864
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
- La posizione della M indica la versione dellâUUID. Nellâesempio sopra, è UUID v1.
- La posizione della N indica la variante dellâUUID.
Sandwich attack
LââAttacco Sandwichâ è un tipo specifico di attacco che sfrutta la prevedibilitĂ della generazione di UUID v1 nelle applicazioni web, in particolare in funzionalitĂ come il ripristino della password. LâUUID v1 è generato in base al tempo, alla sequenza dellâorologio e allâindirizzo MAC del nodo, il che può renderlo in qualche modo prevedibile se un attaccante riesce a ottenere alcuni di questi UUID generati in un intervallo di tempo ravvicinato.
Example
Immagina unâapplicazione web che utilizza UUID v1 per generare link di ripristino della password. Ecco come un attaccante potrebbe sfruttare questo per ottenere accesso non autorizzato:
- Initial Setup:
- Lâattaccante ha il controllo su due account email: `attacker1@acme.com` e `attacker2@acme.com`.
- Lâaccount email della vittima è `victim@acme.com`.
- Execution:
- Lâattaccante attiva un ripristino della password per il suo primo account (`attacker1@acme.com`) e riceve un link di ripristino della password con un UUID, ad esempio `99874128-7592-11e9-8201-bb2f15014a14`.
- Immediatamente dopo, lâattaccante attiva un ripristino della password per lâaccount della vittima (`victim@acme.com`) e poi rapidamente per il secondo account controllato dallâattaccante (`attacker2@acme.com`).
- Lâattaccante riceve un link di ripristino per il secondo account con un UUID, ad esempio `998796b4-7592-11e9-8201-bb2f15014a14`.
- Analysis:
- Lâattaccante ora ha due UUID generati in un intervallo di tempo ravvicinato (`99874128` e `998796b4`). Data la natura sequenziale degli UUID basati sul tempo, lâUUID per lâaccount della vittima cadrĂ probabilmente tra questi due valori.
- Brute Force Attack:
- Lâattaccante utilizza uno strumento per generare UUID tra questi due valori e testa ogni UUID generato tentando di accedere al link di ripristino della password (ad esempio, `https://www.acme.com/reset/<generated-UUID>`).
- Se lâapplicazione web non limita adeguatamente il tasso o non blocca tali tentativi, lâattaccante può rapidamente testare tutti gli UUID possibili nellâintervallo.
- Access Gained:
- Una volta scoperto lâUUID corretto per il link di ripristino della password della vittima, lâattaccante può reimpostare la password della vittima e ottenere accesso non autorizzato al suo account.
Tools
- Puoi eseguire automaticamente lâattacco sandwich con lo strumento: https://github.com/Lupin-Holmes/sandwich
- Puoi rilevare questi tipi di UUID in Burp Suite con lâestensione UUID Detector.
References
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

