BrowExt - XSS Example
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Bu yapılandırmada, bir içerik betiği bir Iframe oluşturmak için uygulanır ve Iframe'in kaynağı olarak sorgu parametreleri içeren bir URL kullanılır:
Herkese açık bir HTML sayfası, message.html
, URL'deki parametrelere dayalı olarak belge gövdesine dinamik olarak içerik eklemek için tasarlanmıştır:
Kötü niyetli bir betik, bir düşmanın sayfasında çalıştırılır ve XSS yükü eklemek için Iframe'in kaynağının content
parametresi değiştirilir. Bu, Iframe'in kaynağını zararlı bir betik içerecek şekilde güncelleyerek gerçekleştirilir:
Aşırı izin veren bir İçerik Güvenlik Politikası, örneğin:
JavaScript'in çalıştırılmasına izin verir, bu da sistemi XSS saldırılarına karşı savunmasız hale getirir.
XSS'i provoke etmenin alternatif bir yaklaşımı, bir Iframe öğesi oluşturmak ve kaynağını content
parametresi olarak zararlı scripti içerecek şekilde ayarlamaktır:
Bu örnek orijinal yazıdan alınmıştır.
Temel sorun, /html/bookmarks.html
dosyasında bulunan DOM tabanlı Cross-site Scripting (XSS) açığından kaynaklanmaktadır. Aşağıda detaylandırılan sorunlu JavaScript, bookmarks.js
dosyasının bir parçasıdır:
Bu kod parçası, txtName
giriş alanından değeri alır ve HTML oluşturmak için dize birleştirmesi kullanır, ardından bu HTML, jQuery’nin .append()
fonksiyonu kullanılarak DOM'a eklenir.
Genellikle, Chrome uzantısının İçerik Güvenlik Politikası (CSP) bu tür zafiyetleri önler. Ancak, ‘unsafe-eval’ ile CSP gevşetmesi ve jQuery’nin DOM manipülasyon yöntemlerinin kullanımı (bu yöntemler, DOM eklenmesi sırasında scriptleri eval()
ile geçmek için globalEval()
kullanır) nedeniyle, istismar hala mümkündür.
Bu zafiyet önemli olsa da, istismarı genellikle kullanıcı etkileşimine bağlıdır: sayfayı ziyaret etmek, bir XSS yükü girmek ve “Ekle” butonunu etkinleştirmek.
Bu zafiyeti artırmak için, ikincil bir clickjacking zafiyeti istismar edilir. Chrome uzantısının manifesti, kapsamlı bir web_accessible_resources
politikasını sergilemektedir:
Özellikle, /html/bookmarks.html
sayfası çerçevelemeye karşı hassastır, bu nedenle clickjacking'e karşı savunmasızdır. Bu zafiyet, sayfayı bir saldırganın sitesinde çerçevelemek için kullanılır ve arayüzü yanıltıcı bir şekilde yeniden tasarlamak için DOM öğeleri ile örtülür. Bu manipülasyon, kurbanların istemeden altta yatan uzantıyla etkileşime girmesine yol açar.
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)