8.8 KiB
UUID Insecurities
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Basic Information
Універсально унікальні ідентифікатори (UUID) — це 128-бітні числа, які використовуються для унікальної ідентифікації інформації в комп'ютерних системах. UUID є необхідними в додатках, де потрібні унікальні ідентифікатори без центральної координації. Вони зазвичай використовуються як ключі бази даних і можуть посилатися на різні елементи, такі як документи та сесії.
UUID розроблені так, щоб бути унікальними та важкими для вгадування. Вони структуровані у специфічному форматі, поділеному на п'ять груп, представлених як 32 шістнадцяткові цифри. Існують різні версії UUID, кожна з яких має різні цілі:
- UUID v1 є заснованим на часі, включаючи мітку часу, послідовність годинника та ідентифікатор вузла (MAC-адресу), але може потенційно розкрити інформацію про систему.
- UUID v2 подібний до v1, але включає модифікації для локальних доменів (не широко використовується).
- UUID v3 і v5 генерують UUID, використовуючи хеш-значення з простору імені та імені, при цьому v3 використовує MD5, а v5 використовує SHA-1.
- UUID v4 генерується майже повністю випадковим чином, забезпечуючи високий рівень анонімності, але з невеликим ризиком дублікатів.
{% hint style="success" %}
Зверніть увагу, що версія та підверсія UUID зазвичай з'являються в одному й тому ж місці всередині UUID. Наприклад у:
12345678 - abcd - 1a56 - a539 - 103755193864
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
- Позиція M вказує на версію UUID. У наведеному вище прикладі це UUID v1.
- Позиція N вказує на варіант UUID. {% endhint %}
Sandwich attack
"Sandwich Attack" — це специфічний тип атаки, який експлуатує передбачуваність генерації UUID v1 у веб-додатках, особливо в таких функціях, як скидання паролів. UUID v1 генерується на основі часу, послідовності годинника та MAC-адреси вузла, що може зробити його дещо передбачуваним, якщо зловмисник може отримати деякі з цих UUID, згенерованих близько за часом.
Example
Уявіть веб-додаток, який використовує UUID v1 для генерації посилань на скидання паролів. Ось як зловмисник може експлуатувати це для отримання несанкціонованого доступу:
- Initial Setup:
- Зловмисник контролює два облікові записи електронної пошти: `attacker1@acme.com` та `attacker2@acme.com`.
- Обліковий запис електронної пошти жертви — `victim@acme.com`.
- Execution:
- Зловмисник ініціює скидання пароля для свого першого облікового запису (`attacker1@acme.com`) і отримує посилання на скидання пароля з UUID, скажімо, `99874128-7592-11e9-8201-bb2f15014a14`.
- Негайно після цього зловмисник ініціює скидання пароля для облікового запису жертви (`victim@acme.com`), а потім швидко для другого облікового запису, контрольованого зловмисником (`attacker2@acme.com`).
- Зловмисник отримує посилання на скидання для другого облікового запису з UUID, скажімо, `998796b4-7592-11e9-8201-bb2f15014a14`.
- Analysis:
- Тепер зловмисник має два UUID, згенеровані близько за часом (`99874128` та `998796b4`). Враховуючи послідовний характер UUID на основі часу, UUID для облікового запису жертви, ймовірно, буде між цими двома значеннями.
- Brute Force Attack:
- Зловмисник використовує інструмент для генерації UUID між цими двома значеннями та тестує кожен згенерований UUID, намагаючись отримати доступ до посилання на скидання пароля (наприклад, `https://www.acme.com/reset/<generated-UUID>`).
- Якщо веб-додаток не обмежує адекватно швидкість або не блокує такі спроби, зловмисник може швидко протестувати всі можливі UUID у діапазоні.
- Access Gained:
- Як тільки правильний UUID для посилання на скидання пароля жертви буде виявлено, зловмисник може скинути пароль жертви та отримати несанкціонований доступ до їх облікового запису.
Tools
- Ви можете автоматично виконати атаку "sandwich" за допомогою інструмента: https://github.com/Lupin-Holmes/sandwich
- Ви можете виявити такі UUID у Burp Suite за допомогою розширення UUID Detector.
References
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.