BrowExt - XSS Example
Iframe Aracılığıyla Cross-Site Scripting (XSS)
Bu yapılandırmada, bir içerik betiği Iframe'in örneklendirilmesi için kullanılır ve Iframe'in kaynağı olarak sorgu parametreleri içeren bir URL eklenir:
Halka açık bir HTML sayfası olan message.html
, URL'deki parametrelere bağlı olarak belge gövdesine içerik eklemek için tasarlanmıştır:
Bir kötü niyetli betik, saldırganın sayfasında yürütülür ve Iframe'in kaynağının content
parametresi değiştirilerek bir XSS saldırı yükü eklenir. Bunun için Iframe'in kaynağı zararlı bir betik içerecek şekilde güncellenir:
Aşırı izin verici bir İçerik Güvenlik Politikası örneği:
JavaScript'in yürütülmesine izin vererek, sistem XSS saldırılarına karşı savunmasız hale gelir.
XSS'yi tetiklemek için alternatif bir yaklaşım, bir Iframe öğesi oluşturmak ve kaynak olarak zararlı betiği content
parametresi olarak ayarlamaktır:
DOM-tabanlı XSS + ClickJacking
Bu örnek, orijinal yazıdan alınmıştır.
Temel sorun, /html/bookmarks.html
konumunda bulunan bir DOM-tabanlı Cross-site Scripting (XSS) açığından kaynaklanmaktadır. Sorunlu JavaScript, bookmarks.js
'nin bir parçası olarak aşağıda detaylandırılmıştır:
Bu kod parçacığı, txtName
giriş alanından değeri alır ve HTML oluşturmak için dize birleştirme kullanır. Oluşturulan HTML daha sonra jQuery'nin .append()
fonksiyonu kullanılarak DOM'a eklenir.
Genellikle, Chrome eklentisinin İçerik Güvenlik Politikası (CSP) bu tür güvenlik açıklarını engeller. Ancak, 'unsafe-eval' ile CSP gevşemesi ve jQuery'nin DOM manipülasyon yöntemlerinin (DOM ekleme sırasında eval()
fonksiyonuna betikleri iletmek için globalEval()
kullanması) kullanılması nedeniyle, sömürü hala mümkündür.
Bu güvenlik açığı önemli olsa da, genellikle kullanıcı etkileşimine bağlı olarak sömürülür: sayfayı ziyaret etmek, bir XSS yüklemesi girmek ve "Ekle" düğmesini etkinleştirmek.
Bu güvenlik açığını artırmak için ikincil bir clickjacking güvenlik açığı sömürülür. Chrome eklentisinin manifest dosyası geniş bir web_accessible_resources
politikasını sergiler:
Özellikle /html/bookmarks.html
sayfası çerçevelenmeye müsait olduğundan dolayı clickjacking saldırısına karşı savunmasızdır. Bu zafiyet, saldırganın sitesi içinde sayfayı çerçevelemek suretiyle, arayüzü yanıltıcı bir şekilde yeniden tasarlamak için DOM öğeleriyle örtüşmesini sağlar. Bu manipülasyon, kurbanların istemeden altta yatan uzantıyla etkileşimde bulunmasına yol açar.
Referanslar
Last updated