Developers.google.com'daki bir Flask çerezi, kendi içinde taşıdığı bir sır ile imzalanmıştı. Bu sırrın ortaya çıkarılması, sahte bir oturumu Google'ın geliştirici sitelerinde kod yürütülmesine dönüştürdü.
Gelişmenin Ayrıntıları ve Kapsamı
I was mapping the OAuth flow that Google’s developer docs sites all share. You hit /oauth2authorize, it sets a Flask session cookie and redirects you to Google’s sign-in page. Hesaba gerek yok:
Kurabiye gözüme çarptı. Flask'ın her zamanki üç bölümlü session=<payload>.<timestamp>.<signature> biçimine sahipti, ancak yaklaşık 1.200 baytla bir CSRF belirteci ve dönüş URL'si için büyük görünüyordu. Ben de şifresini çözdüm.
“Teknoloji ekosisteminde ölçeklenebilirlik ve otomasyon süreçleri, kullanıcı deneyimi ile doğrudan birleştiğinde katma değer üretiyor.”
Flask oturum çerezleri imzalanmıştır, şifrelenmemiştir, dolayısıyla içerikler, çerez tutan herkes için oradadır. Baştaki nokta, yükün zlib ile sıkıştırıldığı anlamına gelir:
"b" anahtarı, Flask'ın bir bayt değerini etiketlemesidir. Base64 kod çözme beni zor durumda bıraktı ve pickletools.dis, alanlarıyla birlikte bir oauth2client.client.OAuth2WebServerFlow nesnesi yazdırdı:
Çerez, turşu serileştirilmiş bir veri ve düz metin olarak Google'ın OAuth client_id ve client_secret bilgilerini içeriyordu. (Sır burada düzenlenmiştir; bu yazının yazıldığı sırada hâlâ yayındaydı.)
İstemci sırrını Flask SECRET_KEY olarak denedim ve verilen çerezdeki imza buna göre doğrulandı. İmzalama anahtarı, imzaladığı nesnenin içinde saklandı.
Sızan müşteri sırrı zaten bir sorundu. Bir tahmine güvenmek yerine oturumu imzalayıp imzalamadığını doğrulamak istedim.
Flask, çerez oturumu anahtarının türetilmesiyle tehlikeli bir şekilde imza atıyor, bu yüzden imzayı çevrimdışı olarak yeniden hesapladım:
beklenen, saniyeler önce bana verilen çerezdeki imzanın bayt bayt aynısı çıktı. Bunun tesadüf olmadığından emin olmak için imzanın bir karakterini değiştirdim (reddedildi) ve orijinal veri yükünü kurtarılan sırla yeniden imzaladım (kabul edildi). Oturum bütünlüğü kaybolmuştu. Oturumdaki her anahtarı ve değeri ayarlayabilir ve yine de sunucunun alacağı bir imza üretebilirdim.
Recep Usta OS — Sistem & Mühendislik Değerlendirmesi
Altyapı ve Verimlilik Perspektifi: I Found a $90k Remote Code Execution Vulnerability in Google haberi incelendiğinde; kurumsal dijitalleşme ve otomasyon süreçlerinin modern yazılım mimarileriyle nasıl güçlendirildiği açıkça görülüyor. Ağ güvenliği, yüksek erişilebilirlik ve mikroservis tabanlı veri senkronizasyonu bu tarz operasyonlarda başarının anahtarıdır.
Kullanıcı odaklı dijital çözümlerin güvenli altyapılarla desteklenmesi, hem yerel pazarda hem de uluslararası genişlemede sistem sürdürülebilirliğini sağlamlaştırmaktadır.