mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
92 lines
6.2 KiB
Markdown
92 lines
6.2 KiB
Markdown
# UUID Insecurities
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## 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 poput dokumenata i sesija.
|
|
|
|
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 široko 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 v**1**.
|
|
* **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 poput resetovanja 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 dobiti 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 iskoristiti ovo da dobije neovlašćen pristup:
|
|
|
|
1. **Početna postavka**:
|
|
|
|
* Napadač ima kontrolu nad dva email naloga: \`attacker1@acme.com\` i \`attacker2@acme.com\`.
|
|
* Ciljani email nalog je \`victim@acme.com\`.
|
|
|
|
2. **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\`.
|
|
|
|
3. **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.
|
|
|
|
4. **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.
|
|
|
|
5. **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**](https://github.com/Lupin-Holmes/sandwich)
|
|
* Možete otkriti ove vrste UUID-ova u Burp Suite-u sa ekstenzijom [**UUID Detector**](https://portswigger.net/bappstore/65f32f209a72480ea5f1a0dac4f38248).
|
|
|
|
## References
|
|
|
|
* [https://versprite.com/blog/universally-unique-identifiers/](https://versprite.com/blog/universally-unique-identifiers/)
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|