6.2 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
Univerzalno jedinstveni identifikatori (UUID) su 128-bitni brojevi koji se koriste za jedinstveno identifikovanje informacija u računarstvu. UUID-ovi su neophodni u aplikacijama gde su jedinstveni identifikatori potrebni bez centralne koordinacije. Često se koriste kao ključevi u bazama podataka i mogu se odnositi na različite elemente kao što su dokumenti i sesije.
UUID-ovi su dizajnirani da budu jedinstveni i teški za pogađanje. Struktuirani su u specifičnom formatu, podeljeni u pet grupa koje su predstavljene kao 32 heksadecimalne cifre. Postoje različite verzije UUID-ova, od kojih svaka ima različite svrhe:
- UUID v1 je vremenski zasnovan, uključuje vremensku oznaku, sekvencu sata i ID čvora (MAC adresa), ali može potencijalno otkriti informacije o sistemu.
- UUID v2 je sličan v1, ali uključuje modifikacije za lokalne domene (nije često korišćen).
- UUID v3 i v5 generišu UUID-ove koristeći heš vrednosti iz imenskog prostora i imena, pri čemu v3 koristi MD5, a v5 koristi SHA-1.
- UUID v4 se generiše gotovo potpuno nasumično, pružajući visok nivo anonimnosti, ali sa malim rizikom od duplikata.
{% hint style="success" %}
Napomena da verzija i podverzija UUID obično se pojavljuju na istom mestu unutar UUID-a. Na primer u:
12345678 - abcd - 1a56 - a539 - 103755193864
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
- Pozicija M označava UUID verziju. U gornjem primeru, to je UUID v1.
- Pozicija N označava UUID varijantu. {% endhint %}
Sandwich attack
"Sandwich Attack" je specifična vrsta napada koja iskorišćava predvidljivost generisanja UUID v1 u web aplikacijama, posebno u funkcijama kao što su resetovanje lozinki. UUID v1 se generiše na osnovu vremena, sekvence sata i MAC adrese čvora, što može učiniti da bude donekle predvidljiv ako napadač može da dobije neke od ovih UUID-ova generisanih blizu u vremenu.
Example
Zamislite web aplikaciju koja koristi UUID v1 za generisanje linkova za resetovanje lozinki. Evo kako bi napadač mogao da iskoristi ovo da dobije neovlašćen pristup:
- Početna postavka:
- Napadač ima kontrolu nad dva email naloga: `attacker1@acme.com` i `attacker2@acme.com`.
- Ciljani email nalog je `victim@acme.com`.
- Izvršenje:
- Napadač pokreće resetovanje lozinke za svoj prvi nalog (`attacker1@acme.com`) i prima link za resetovanje lozinke sa UUID-om, recimo `99874128-7592-11e9-8201-bb2f15014a14`.
- Odmah nakon toga, napadač pokreće resetovanje lozinke za nalog žrtve (`victim@acme.com`) i zatim brzo za drugi nalog pod kontrolom napadača (`attacker2@acme.com`).
- Napadač prima link za resetovanje za drugi nalog sa UUID-om, recimo `998796b4-7592-11e9-8201-bb2f15014a14`.
- Analiza:
- Napadač sada ima dva UUID-a generisana blizu u vremenu (`99874128` i `998796b4`). S obzirom na sekvencijalnu prirodu UUID-ova zasnovanih na vremenu, UUID za nalog žrtve će verovatno pasti između ove dve vrednosti.
- Brute Force Attack:
- Napadač koristi alat za generisanje UUID-ova između ove dve vrednosti i testira svaki generisani UUID pokušavajući da pristupi linku za resetovanje lozinke (npr. `https://www.acme.com/reset/<generated-UUID>`).
- Ako web aplikacija ne ograničava adekvatno brzinu ili ne blokira takve pokušaje, napadač može brzo testirati sve moguće UUID-ove u opsegu.
- Pristup dobijen:
- Kada se otkrije tačan UUID za link za resetovanje lozinke žrtve, napadač može resetovati lozinku žrtve i dobiti neovlašćen pristup njihovom nalogu.
Tools
- Možete automatski izvršiti sandwich attack pomoću alata: https://github.com/Lupin-Holmes/sandwich
- Možete otkriti ove vrste UUID-ova u Burp Suite-u sa ekstenzijom 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.