UUID Insecurities
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Universell eindeutige Identifikatoren (UUIDs) sind 128-Bit-Zahlen, die verwendet werden, um Informationen in Computersystemen eindeutig zu identifizieren. UUIDs sind in Anwendungen, in denen eindeutige Identifikatoren ohne zentrale Koordination erforderlich sind, unerlässlich. Sie werden häufig als Datenbankschlüssel verwendet und können sich auf verschiedene Elemente wie Dokumente und Sitzungen beziehen.
UUIDs sind so konzipiert, dass sie einzigartig und schwer zu erraten sind. Sie sind in einem bestimmten Format strukturiert, das in fünf Gruppen unterteilt ist, die als 32 hexadezimale Ziffern dargestellt werden. Es gibt verschiedene Versionen von UUIDs, die jeweils unterschiedliche Zwecke erfüllen:
UUID v1 ist zeitbasiert und umfasst den Zeitstempel, die Uhrsequenz und die Knoten-ID (MAC-Adresse), kann jedoch potenziell Systeminformationen offenlegen.
UUID v2 ist ähnlich wie v1, enthält jedoch Modifikationen für lokale Domänen (nicht weit verbreitet).
UUID v3 und v5 generieren UUIDs mithilfe von Hashwerten aus Namespace und Name, wobei v3 MD5 und v5 SHA-1 verwendet.
UUID v4 wird fast vollständig zufällig generiert und bietet ein hohes Maß an Anonymität, birgt jedoch ein geringes Risiko von Duplikaten.
Beachten Sie, dass die Version und Unterversion der UUID normalerweise an derselben Stelle innerhalb der UUID erscheint. Zum Beispiel in: 12345678 - abcd - 1a56 - a539 - 103755193864 xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
Die Position des M zeigt die UUID Version an. Im obigen Beispiel ist es UUID v1.
Die Position des N zeigt die UUID-Variante an.
Der "Sandwich-Angriff" ist eine spezifische Art von Angriff, die die Vorhersehbarkeit der UUID v1-Generierung in Webanwendungen ausnutzt, insbesondere bei Funktionen wie Passwortzurücksetzungen. UUID v1 wird basierend auf Zeit, Uhrsequenz und der MAC-Adresse des Knotens generiert, was es etwas vorhersehbar macht, wenn ein Angreifer einige dieser in kurzer Zeit generierten UUIDs erhalten kann.
Stellen Sie sich eine Webanwendung vor, die UUID v1 zur Generierung von Links für Passwortzurücksetzungen verwendet. So könnte ein Angreifer dies ausnutzen, um unbefugten Zugriff zu erlangen:
Erste Einrichtung:
Der Angreifer hat Kontrolle über zwei E-Mail-Konten: `attacker1@acme.com` und `attacker2@acme.com`.
Das E-Mail-Konto des Ziels ist `victim@acme.com`.
Ausführung:
Der Angreifer löst eine Passwortzurücksetzung für sein erstes Konto (`attacker1@acme.com`) aus und erhält einen Link zur Passwortzurücksetzung mit einer UUID, sagen wir `99874128-7592-11e9-8201-bb2f15014a14`.
Unmittelbar danach löst der Angreifer eine Passwortzurücksetzung für das Konto des Opfers (`victim@acme.com`) und dann schnell für das zweite, vom Angreifer kontrollierte Konto (`attacker2@acme.com`) aus.
Der Angreifer erhält einen Zurücksetzungslink für das zweite Konto mit einer UUID, sagen wir `998796b4-7592-11e9-8201-bb2f15014a14`.
Analyse:
Der Angreifer hat nun zwei UUIDs, die in kurzer Zeit generiert wurden (`99874128` und `998796b4`). Angesichts der sequenziellen Natur zeitbasierter UUIDs wird die UUID für das Konto des Opfers wahrscheinlich zwischen diesen beiden Werten liegen.
Brute-Force-Angriff:
Der Angreifer verwendet ein Tool, um UUIDs zwischen diesen beiden Werten zu generieren und testet jede generierte UUID, indem er versucht, auf den Link zur Passwortzurücksetzung zuzugreifen (z. B. `https://www.acme.com/reset/<generated-UUID>`).
Wenn die Webanwendung solche Versuche nicht angemessen drosselt oder blockiert, kann der Angreifer schnell alle möglichen UUIDs im Bereich testen.
Zugriff erlangt:
Sobald die korrekte UUID für den Zurücksetzungslink des Opfers entdeckt wird, kann der Angreifer das Passwort des Opfers zurücksetzen und unbefugten Zugriff auf dessen Konto erlangen.
Sie können den Sandwich-Angriff automatisch mit dem Tool durchführen: https://github.com/Lupin-Holmes/sandwich
Sie können diese Art von UUIDs in Burp Suite mit der Erweiterung UUID Detector erkennen.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)