mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
66 lines
4.5 KiB
Markdown
66 lines
4.5 KiB
Markdown
# UUID Güvenlik Açıkları
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## Temel Bilgiler
|
||
|
||
Evrensel Benzersiz Tanımlayıcılar (UUID'ler), bilgisayar sistemlerinde bilgileri benzersiz bir şekilde tanımlamak için kullanılan **128 bitlik sayılardır**. UUID'ler, merkezi bir koordinasyona ihtiyaç duymadan benzersiz tanımlayıcıların gerekli olduğu uygulamalarda önemlidir. Genellikle veritabanı anahtarları olarak kullanılır ve belgeler ile oturumlar gibi çeşitli öğeleri referans alabilirler.
|
||
|
||
UUID'ler, benzersiz olacak şekilde ve **tahmin edilmesi zor** olacak şekilde tasarlanmıştır. 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 sürümleri vardır:
|
||
|
||
- **UUID v1**, zaman damgası, saat sırası ve düğüm kimliği (MAC adresi) içeren zaman tabanlıdır, 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 taşır.
|
||
|
||
> [!TIP]
|
||
> UUID'nin sürümü ve alt sürümü genellikle UUID içinde aynı konumda görünür. Örneğin:\
|
||
> 12345678 - abcd - 1a56 - a539 - 103755193864\
|
||
> xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
|
||
>
|
||
> - **M'nin konumu**, UUID'nin **sürümünü** gösterir. Yukarıdaki örnekte, UUID v**1**'dir.
|
||
> - **N'nin konumu**, UUID varyantını gösterir.
|
||
|
||
## 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 yetkisiz erişim elde etmek için 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 işlemi başlatır (\`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 işlemi başlatır (\`victim@acme.com\`) ve ardından hızlıca ikinci saldırgan kontrolündeki hesap için (\`attacker2@acme.com\`) başlatır.
|
||
- 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'nin muhtemelen bu iki değerin arasında olacağı tahmin edilebilir.
|
||
|
||
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 elde edebilir.
|
||
|
||
### 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/)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|