
Safari’de, keyfi JavaScript kodu yürütmek için tarayıcının TyperError istisna taşıma mekanizmasını kullanan yeni bir bölgeler arası komut dosyası (XSS) güvenlik açığı.
Gareth Heyes’in yük gizleme tekniklerini araştırması sırasında keşfedilen kusur, Safari’nin TyperError mesajlarında kaçan teklifin yanlış kullanılmasının kötü amaçlı kod yürütülmesi için nasıl silahlandırılabileceğini gösteriyor.
Bu güvenlik açığı, tarayıcının kendi hatası taşıyan altyapısını kullanarak geleneksel XSS önleme mekanizmalarını atladığı için önemli bir güvenlik endişesini temsil eder.
TypeError XSS Güvenlik Açığı
Güvenlik açığı, Safari’nin TypeError istisna mesajları içinde tek ve çift alıntıların kusurlu bir şekilde ele alınmasından kaynaklanmaktadır.
Geliştiriciler yeni operatörü karışık alıntılar içeren bir dize gerçekte kullanmaya çalıştıklarında, Safari hata mesajı içindeki alıntı karakterlerini yetersiz bir şekilde kaçan bir typeError oluşturur.
Temel sorun, typeError mesajını üreten yeni ‘foo’ çubuğu ‘gibi kodları yürütürken ortaya çıkar: “foo” çubuğu ”bir yapıcı değildir.
Kritik kusur, tek tırnakların çift tırnaklara dönüştürüldüğü Safari’nin dönüşüm işleminde yatmaktadır, ancak ipin içindeki gömülü çift alıntı, kaçınılmaz.
Bu, ortaya çıkan hata mesajının üç çift tırnak içerdiği, dize sınırını etkili bir şekilde kıran ve keyfi JavaScript’in istisna metnine enjekte edilmesine izin verdiği bir senaryo oluşturur.
Söz konusu Sözdizimi hatalarının aksine, daha sonraki JavaScript yürütülmesini önlemediğinden, sömürü mümkün olur çünkü kötü amaçlı kodun hata mesajı bağlamında çalışması için bir yol oluşturur.
Sömürü tekniği, typeError üretimini JavaScript’in küresel hata işleyici mekanizmasıyla birleştirir.
Onerror = Değerlendirme ayarlayarak, saldırganlar tüm durdurulmamış istisnaları değerlendirebilir () işlevine yönlendirebilir, bu da daha sonra hatalı şekillendirilmiş typeError mesajını JavaScript kodu olarak yürütür.
Pratik bir yük gösterisi, typeError’u oluşturan yeni ‘foo’ -alert (1) // ‘kodunu içerir: “foo” -alert (1) // ”bir yapıcı değildir.
Bu hata mesajı değerlendirme işlevi aracılığıyla JavaScript olarak işlendiğinde, typeError: bölüm bir etiket ifadesi haline gelir, ilk çift alıntı dizeyi kapatır, uyarı (1) işlevi yürütülür ve sonraki yorum sözdizimi (//) kalan hata metnini nötralize eder.
Bu teknik, Window.name kullanılarak bir yük dağıtım mekanizması olarak daha da geliştirilebilir, ancak Safari’nin navigasyon tabanlı Window.name temizlenmesi, hedef öznitelikler veya window.open () yöntemlerini kullanarak geçici çözümler gerektirir.
Bu güvenlik açığı, kötü amaçlı kodları meşru hata işleme işlemlerine yerleştirerek geleneksel XSS filtreleme mekanizmalarını atlayan sofistike bir saldırı vektörünü temsil eder.
İstismarın temel JavaScript hata işlemesine olan güven, uygulama düzeyinde güvenlik açıklarından yararlanmak yerine tarayıcının temel işlevselliği içinde çalıştığı için özellikle ilgilendirir.
Rapora göre, tekniğin etkinliği, geleneksel senaryo enjeksiyon noktaları gerektirmeden keyfi kod yürütme yeteneği ile güçlendiriliyor.
Keşif, tarayıcı hata mesajlarında uygun teklif kaçmasının önemini vurgular ve görünüşte zararsız uygulama ayrıntılarının ne kadar önemli güvenlik açıkları yaratabileceğini gösterir.
Kuruluşlar kapsamlı içerik güvenliği politikaları uygulamalı, tüm kullanıcı girişlerini titizlikle doğrulamalı ve hata işleme mekanizmaları yoluyla sömürü potansiyelini göz önünde bulundurmalıdır.
Tarayıcı satıcıları, gelecekteki sürümlerde benzer güvenlik açıklarının ortaya çıkmasını önlemek için hata mesajlarında özel karakterlerin uygun şekilde kaçmasına öncelik vermelidir.
Tehdit istihbarat aramasıyla tehdit araştırmalarını hızlandırın ve zenginleştirin! -> 50 Deneme Arama İsteği