# UUID Güvenlik Açıkları
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}
## Temel Bilgiler
Evrensel Benzersiz Tanımlayıcılar (UUID'ler) **bilgi sistemlerinde bilgiyi benzersiz bir şekilde tanımlamak için kullanılan 128-bit sayılardır**. UUID'ler, merkezi bir koordinasyon olmadan benzersiz tanımlayıcıların gerekli olduğu uygulamalarda önemlidir. Genellikle veritabanı anahtarları olarak kullanılır ve belgeler ve oturumlar gibi çeşitli öğeleri referans alabilir.
UUID'ler benzersiz olacak şekilde tasarlanmıştır ve **tahmin edilmesi zordur**. Belirli bir formatta yapılandırılmıştır ve 32 onaltılık basamaktan oluşan beş gruba ayrılmıştır. Farklı amaçlar için hizmet eden farklı UUID versiyonları vardır:
* **UUID v1** zaman tabanlıdır, zaman damgası, saat sırası ve düğüm kimliği (MAC adresi) içerir, ancak sistem bilgilerini potansiyel olarak açığa çıkarabilir.
* **UUID v2** v1'e benzer ancak yerel alanlar için değişiklikler içerir (yaygın olarak kullanılmaz).
* **UUID v3 ve v5** ad alanı ve isimden hash değerleri kullanarak UUID'ler oluşturur; v3 MD5 kullanırken v5 SHA-1 kullanır.
* **UUID v4** neredeyse tamamen rastgele üretilir, yüksek bir anonimlik seviyesi sağlar ancak küçük bir çifte düşme riski taşır.
{% hint style="success" %}
UUID'nin versiyonu ve alt versiyonu genellikle UUID içinde aynı pozisyonda görünür. Örneğin:\
12345678 - abcd - 1a56 - a539 - 103755193864\
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
* **M'nin pozisyonu**, UUID'nin **versiyonunu** gösterir. Yukarıdaki örnekte, UUID v**1**'dir.
* **N'nin pozisyonu**, UUID varyantını gösterir.
{% endhint %}
## Sandviç Saldırısı
"Sandviç Saldırısı", **web uygulamalarında UUID v1 üretiminin tahmin edilebilirliğini istismar eden** belirli bir saldırı türüdür, özellikle şifre sıfırlama gibi özelliklerde. UUID v1, zaman, saat sırası ve düğümün MAC adresine dayalı olarak üretilir; bu, bir saldırganın bu UUID'lerden bazılarını zaman açısından yakın bir şekilde elde edebilmesi durumunda tahmin edilebilir hale getirebilir.
### Örnek
UUID v1'i şifre sıfırlama bağlantıları oluşturmak için kullanan bir web uygulamasını hayal edin. İşte bir saldırganın bunu nasıl istismar edebileceği:
1. **Başlangıç Ayarı**:
* Saldırganın iki e-posta hesabı üzerinde kontrolü vardır: \`attacker1@acme.com\` ve \`attacker2@acme.com\`.
* Hedefin e-posta hesabı \`victim@acme.com\`'dur.
2. **Uygulama**:
* Saldırgan, ilk hesabı için bir şifre sıfırlama tetikler (\`attacker1@acme.com\`) ve bir UUID ile şifre sıfırlama bağlantısı alır, diyelim ki \`99874128-7592-11e9-8201-bb2f15014a14\`.
* Hemen ardından, saldırgan kurbanın hesabı için bir şifre sıfırlama tetikler (\`victim@acme.com\`) ve ardından hızlıca ikinci saldırgan kontrolündeki hesap için (\`attacker2@acme.com\`) tetikler.
* Saldırgan, ikinci hesap için bir UUID ile sıfırlama bağlantısı alır, diyelim ki \`998796b4-7592-11e9-8201-bb2f15014a14\`.
3. **Analiz**:
* Saldırgan artık zaman açısından yakın üretilmiş iki UUID'ye sahiptir (\`99874128\` ve \`998796b4\`). Zaman tabanlı UUID'lerin ardışık doğası göz önüne alındığında, kurbanın hesabı için UUID muhtemelen bu iki değerin arasında olacaktır.
4. **Kaba Kuvvet Saldırısı:**
* Saldırgan, bu iki değer arasında UUID'ler oluşturmak için bir araç kullanır ve her üretilen UUID'yi şifre sıfırlama bağlantısına erişmeye çalışarak test eder (örneğin, \`https://www.acme.com/reset/\\`).
* Web uygulaması bu tür denemeleri yeterince sınırlamaz veya engellemezse, saldırgan aralıktaki tüm olası UUID'leri hızlıca test edebilir.
5. **Erişim Sağlandı:**
* Kurbanın şifre sıfırlama bağlantısı için doğru UUID keşfedildiğinde, saldırgan kurbanın şifresini sıfırlayabilir ve hesabına yetkisiz erişim sağlayabilir.
### Araçlar
* Sandviç saldırısını otomatik olarak gerçekleştirmek için aracı kullanabilirsiniz: [**https://github.com/Lupin-Holmes/sandwich**](https://github.com/Lupin-Holmes/sandwich)
* Bu tür UUID'leri Burp Suite'te [**UUID Detector**](https://portswigger.net/bappstore/65f32f209a72480ea5f1a0dac4f38248) uzantısıyla tespit edebilirsiniz.
## Referanslar
* [https://versprite.com/blog/universally-unique-identifiers/](https://versprite.com/blog/universally-unique-identifiers/)
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}