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:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegramm-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositorys einreichen.
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:
- 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`.
- 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`.
- 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.
- 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.
- 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
- 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.