UUID Insecurities

HackTricks'i Destekleyin

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.

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 v1'dir.

  • N'nin pozisyonu, 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 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.

  1. 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`.

  1. 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.

  1. 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.

  1. 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

Referanslar

HackTricks'i Destekleyin

Last updated