hacktricks/pentesting-web/uuid-insecurities.md

92 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# UUID Güvenlik Açıkları
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<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">\
GCP Hacking'i öğrenin ve pratik yapın: <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>HackTricks'i Destekleyin</summary>
* [**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 **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **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.
</details>
{% 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 basamak olarak temsil edilen 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 kopya riski vardı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 zaman açısından yakın üretilen bazı UUID'leri 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 üretilen 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ğer 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/\<generated-UUID>\`).
* 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:<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">\
GCP Hacking'i öğrenin ve pratik yapın: <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>HackTricks'i Destekleyin</summary>
* [**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 **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **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.
</details>
{% endhint %}