hacktricks/pentesting-web/uuid-insecurities.md

5.7 KiB

UUID-Sicherheitslücken

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Grundlegende Informationen

Universally Unique Identifiers (UUIDs) sind 128-Bit-Nummern, die zur eindeutigen Identifizierung von Informationen in Computersystemen verwendet werden. UUIDs sind in Anwendungen unerlässlich, in denen eindeutige Kennungen ohne zentrale Koordination erforderlich sind. Sie werden häufig als Datenbankschlüssel verwendet und können sich auf verschiedene Elemente wie Dokumente und Sitzungen beziehen.

UUIDs sind darauf ausgelegt, eindeutig und schwer zu erraten zu sein. Sie sind in einem bestimmten Format strukturiert, das in fünf Gruppen aufgeteilt ist und durch 32 hexadezimale Ziffern dargestellt wird. Es gibt verschiedene Versionen von UUIDs, von denen jede unterschiedliche Zwecke erfüllt:

  • UUID v1 basiert auf der Zeit und enthält den Zeitstempel, die Taktfrequenz und die Knoten-ID (MAC-Adresse), kann jedoch potenziell Systeminformationen preisgeben.
  • UUID v2 ähnelt v1, enthält jedoch Modifikationen für lokale Domänen (wenig verwendet).
  • UUID v3 und v5 generieren UUIDs mithilfe von Hash-Werten 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.

{% hint style="success" %} Beachten Sie, dass die Version und Unter-Version des UUID normalerweise an derselben Stelle innerhalb des UUID erscheinen. Zum Beispiel in:
12345678 - abcd - 1a56 - a539 - 103755193864
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx

  • Die Position des M gibt die UUID-Version an. Im obigen Beispiel handelt es sich um UUID v1.
  • Die Position des N gibt die UUID-Variante an. {% endhint %}

Sandwich-Angriff

Der "Sandwich-Angriff" ist ein spezifischer Angriffstyp, der die Vorhersehbarkeit der UUID-v1-Generierung in Webanwendungen ausnutzt, insbesondere in Funktionen wie Passwortzurücksetzungen. UUID v1 wird basierend auf der Zeit, der Taktfrequenz und der MAC-Adresse des Knotens generiert, was sie für einen Angreifer etwas vorhersehbar machen kann, wenn er einige dieser nahe in der Zeit generierten UUIDs erhalten kann.

Beispiel

Stellen Sie sich eine Webanwendung vor, die UUID v1 für die Generierung von Passwortzurücksetzungslinks verwendet. So könnte ein Angreifer dies ausnutzen, um unbefugten Zugriff zu erlangen:

  1. Erstkonfiguration:
  • Der Angreifer hat die Kontrolle über zwei E-Mail-Konten: `attacker1@acme.com` und `attacker2@acme.com`.
  • Das E-Mail-Konto des Ziels ist `victim@acme.com`.
  1. Ausführung:
  • Der Angreifer löst einen Passwortzurücksetzungsvorgang für sein erstes Konto aus (`attacker1@acme.com`) und erhält einen Passwortzurücksetzungslink mit einer UUID, z. B. `99874128-7592-11e9-8201-bb2f15014a14`.
  • Unmittelbar danach löst der Angreifer einen Passwortzurücksetzungsvorgang 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, z. B. `998796b4-7592-11e9-8201-bb2f15014a14`.
  1. Analyse:
  • Der Angreifer hat jetzt zwei nahe in der Zeit generierte UUIDs (`99874128` und `998796b4`). Angesichts der sequenziellen Natur von zeitbasierten UUIDs wird die UUID für das Konto des Opfers wahrscheinlich zwischen diesen beiden Werten liegen.
  1. 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 Passwortzurücksetzungslink zuzugreifen (z. B. `https://www.acme.com/reset/<generierte-UUID>`).
  • Wenn die Webanwendung solche Versuche nicht angemessen drosselt oder blockiert, kann der Angreifer schnell alle möglichen UUIDs im Bereich testen.
  1. Zugriff erhalten:
  • Sobald die richtige UUID für den Passwortzurücksetzungslink des Opfers entdeckt wurde, kann der Angreifer das Passwort des Opfers zurücksetzen und unbefugten Zugriff auf sein Konto erlangen.

Tools

Referenzen