20 puan yazan kuroneko 2023-10-27 | 3 yorum | WhatsApp'ta paylaş
  • Salt Labs, OAuth uygulamasındaki zafiyetler üzerinden Booking.com, Grammarly, Vidio, Bukalapak gibi yüz milyonlarca kişi tarafından kullanılan dev hizmetlerde ve mobil framework Expo'da hesap ele geçirmenin mümkün olduğunu keşfetti.
  • OAuth özünde güvenli bir protokol olsa da, nasıl uygulandığına bağlı olarak kritik zafiyetler ortaya çıkabileceğini gösteriyor.
  • Booking.com
    • Facebook OAuth uygulamasında redirect_uri değerinin aynı host üzerindeki farklı bir yola değiştirilebilmesi sorunu bulunuyor.
    • booking.com içinde, base64 biçimindeki bir adres verilince o adrese yönlendiren bir endpoint bulunuyor.
    • Bu ikisi birleştirilerek OAuth token'ının başka bir adrese gitmesi sağlanabiliyor.
    • Web sürümünde giriş işlemi sırasında redirect_uri doğrulandığı için zafiyet yoktu; ancak mobil sürümde redirect_uri de manipüle edilebildiğinden hesap ele geçirme mümkün oluyordu.
    • Yani kullanıcının son derece meşru görünen bir bağlantıya tıklayıp normal şekilde OAuth akışını tamamlamasıyla hesabının ele geçirilebildiği bir zafiyet.
  • Expo
    • Mobil framework Expo'nun yerleşik OAuth uygulamasında keşfedilen bir zafiyet.
    • Bu uygulamada returnUrl içine exp://~~ biçiminde Expo uygulamasına özel bağlantı giriyor; ancak buraya hTTps://~~ gibi bir web adresi de konulabilmesi sorunu var.
      • https:// doğrudan girilemeyecek şekilde işlenmiş olsa da, yalnızca büyük-küçük harf değişikliğiyle bu kısıtlama aşılabiliyor.
    • Bu durumda returnUrl bilgisi RU adlı bir çereze kaydediliyor ve OAuth tamamlandıktan sonra Expo'nun OAuth sunucusu bu çerezi okuyup yönlendirme yapıyor.
    • Ancak Expo'dan Facebook'a geçmeden önce https://~~ 를 신뢰하는 경우... şeklinde bir uyarı mesajı çıkıyor ve kullanıcının bunu kabul etmesi gerekiyor.
    • Bunu aşmak için iki bağlantının otomatik olarak açılması yöntemi kullanıldı.
      • İlk bağlantı açılıp hemen kapatılarak yalnızca RU çerezi ayarlanıyor.
      • İkinci bağlantıda ise doğrudan Facebook OAuth bağlantısı verilerek RU uyarı mesajı atlatılıyor.
    • Bu yöntemle Codecademy.com hesabının ele geçirilmesi başarıldı.
    • Zafiyete CVE-2023-28131 atanmış olup, Expo ekibi ilk bildirimden yalnızca birkaç saat sonra sorunu düzeltti.
  • Grammarly, Vidio, Bukalapak
    • Üç sitede de aynı yöntemle hesap ele geçirme mümkün.
    • Önce meşru bir web sitesi oluşturularak Facebook giriş token'ları toplanıyor.
    • Ardından Vidio ve Bukalapak'a Facebook'un verdiği (başka bir web sitesi için üretilmiş) token verilince giriş doğrudan başarılı oluyor.
      • Bunun nedeni Facebook token'ının App ID'sinin kontrol edilmemesi. (token yeniden kullanım saldırısı)
    • Grammarly ise biraz farklı olarak token yerine kod kullandığı için bu zafiyet doğrudan bulunmuyordu.
    • Ancak kod gönderen API'ye "code" yerine "access_token" adıyla token verildiğinde giriş yapılabildiği doğrulandı.
    • Bu nedenle üç sitenin de, meşru başka bir sitede Facebook entegrasyonu kullanıldığında hesapları anında ele geçirilebiliyordu.
  • OAuth uygulanırken güvenlik zafiyeti oluşabilecek noktaların dikkatle incelenmesi ve zafiyetleri önlemek için tüm işleme adımlarında titiz doğrulama yapılması gerekiyor.

3 yorum

 
ironlung 2023-10-28

Bu gerçekten endişe verici. Gerçekten çok dikkatli olmak gerekecek.

 
[Bu yorum gizlendi.]
 
kuroneko 2023-10-27

Göründüğünden çok daha fazla sayıda büyük sitenin bu tür zafiyetlere sahip olduğu anlaşılıyor.
Gerçekten dikkatle ele alınması gereken bir özellik gibi görünüyor.

"Kimlik doğrulama kütüphanesi kullanmak gerekir..." diye düşündüm,
ama Expo örneğine bakınca bunun da ayrıca doğrulanması gerektiğini düşünüyorum.