Güvenlik araştırmacıları, NonC tabanlı içerik güvenliği politikasının (CSP) algılanan güvenliğini zorlayan bir atılımda, HTML enjeksiyonu, CSS tabanlı nonce sızıntısı ve tarayıcı önbellek manipülasyonunu birleştirerek bu korumaları atlamak için pratik bir yöntem göstermiştir.
Kurulum: Gerçekçi bir XSS Mücadelesi
Araştırma, giriş formu ve gösterge tablosu içeren minimal bir web uygulamasına odaklanmaktadır.
Gösterge tablosu, siteler arası komut dosyalarına (XSS) karşı sağlam bir savunma olarak kabul edilen NonC tabanlı bir CSP tarafından korunmaktadır.
Her sayfa yükü, hem CSP hem de
Ancak, uygulama ince bir güvenlik açığı içerir: Kullanıcı girişi, uygun sanitizasyon olmadan .innerhtml kullanılarak sayfaya eklenir.
CSP enjekte edilen komut dosyalarını engellemeli olsa da, araştırmacılar bu korumayı atlatmanın bir yolunu buldular.
Adım 1: CSS enjeksiyonu yoluyla nonce’yi sızdırmak
İlk engel, enjekte edilen herhangi bir komut dosyasının yürütülmesi için gerekli olan nonce değerini elde etmektir. Araştırmacılar, CSP’nin kısıtlamadığı gerçeğinden yararlandı
Dikkatlice hazırlanmış CSS seçicileri enjekte ederek, nonce’yi sayfadan sızdırabildiler. CSP politikasını içeren etiket.

Önceki CTF zorluklarından esinlenen bu teknik, nonce’yi küçük parçalarda eklemek için öznitelik seçicileri ve arka plan görüntü isteklerinin kullanılmasını içerir ve bunlar daha sonra sunucu tarafı yeniden birleştirilir.
Adım 2: Tarayıcı önbelleğe alınma (bfcache ve disk önbelleği)
Elinde nonce ile bir sonraki zorluk, doğru olmayanlarla yürütülecek bir yük enjekte etmektir.

Burada, araştırmacılar tarayıcı önbellek mekanizmalarından yararlandı – özellikle arka/ileri önbellek (BFCACE) ve disk önbelleği.
Navigasyon geçmişini ve önbellek anahtarlarını (sorgu parametrelerini kullanarak) manipüle ederek, tarayıcıyı disk önbelleğinden gösterge paneli sayfasının eski bir sürümünü (bilinen nonce ile) bir CSRF saldırısı yoluyla yeni bir XSS yükü ile aynı anda güncelleyerek zorladılar.
HTML’nin (eski nonce ile) ve dinamik verilerin (yeni yük ile) bu ayrılması, enjekte edilen komut dosyasının başarılı bir şekilde yürütülmesine izin verdi ve NonC tabanlı CSP’yi atladı.
3. Adım: Gerçek Dünya Çıkarları
Bu saldırı, iyi yapılandırılmış NonC tabanlı CSP’lerin bile aşağıdakilerde yenilebileceğini göstermektedir.
- Nonce, HTML veya CSS enjeksiyonu ile sızdırılabilir.
- Saldırgan, bilinen bir nonce’yi yeniden kullanmak için tarayıcı önbellek davranışını manipüle edebilir.
- Uygulama, olmayan yaşam döngüsüne sıkıca bağlı olmayan dinamik içerik güncellemelerine (örneğin Getch veya Ajax aracılığıyla) izin verir.
Araştırma, bütünsel web güvenliğinin önemini vurgulamaktadır. CSP Nonses güçlü bir araçtır, ancak gümüş bir mermi değildir.
Geliştiriciler, Nones’in sızdırılamamasını, kullanıcı girişinin uygun şekilde sterilize edilmesini ve tarayıcı önbellek davranışlarının tehdit modellerinde anlaşılmasını ve açıklandığından emin olmalıdır.
Bu bulgu bir hatırlatma görevi görür: Güvenlik sadece en zayıf bağlantısı kadar güçlüdür ve saldırganlar, web teknolojileri arasındaki gözden kaçan etkileşimleri kullanmanın yaratıcı yollarını bulmaya devam edecektir.
Özel Web Semineri Uyarısı: Gelişmiş API Güvenliği İçin Intel® İşlemci Yeniliklerini Koşullandırma – Ücretsiz Kayıt