DOM Invader

HackTricks'i Destekleyin

DOM Invader

DOM Invader, Burp'ın yerleşik tarayıcısında kurulu bir tarayıcı aracıdır. Çeşitli kaynaklar ve sinkler kullanarak DOM XSS zafiyetlerini tespit etmeye yardımcı olur; bunlar arasında web mesajları ve prototip kirlenmesi bulunmaktadır. Araç, bir uzantı olarak önceden yüklenmiştir.

DOM Invader, tarayıcının Geliştirici Araçları panelinde aşağıdakileri sağlayan bir sekme entegre eder:

  1. DOM XSS testi için bir web sayfasındaki kontrol edilebilir sinklerin tanımlanması, bağlam ve sanitizasyon detayları sağlar.

  2. postMessage() yöntemiyle gönderilen web mesajlarının kaydedilmesi, düzenlenmesi ve yeniden gönderilmesi için DOM XSS testi. DOM Invader ayrıca özel olarak hazırlanmış web mesajlarını kullanarak zafiyetleri otomatik olarak tespit edebilir.

  3. İstemci tarafı prototip kirlenmesi kaynaklarının tespiti ve riskli sinklere gönderilen kontrol edilebilir gadgetların taranması.

  4. DOM clobbering zafiyetlerinin tanımlanması.

Etkinleştir

Burp'ın yerleşik tarayıcısında Burp uzantısına gidin ve etkinleştirin:

Şimdi sayfayı yenileyin ve Geliştirici Araçları'nda DOM Invader sekmesini bulacaksınız:

Bir Canary Enjekte Et

Önceki resimde bir rastgele karakter grubu, yani Canary görebilirsiniz. Şimdi farklı bölgelere (parametreler, formlar, url...) enjekte etmeye başlamalı ve her seferinde arama yapmalısınız. DOM Invader, canary'nin herhangi bir ilginç sinkte sona erip ermediğini kontrol edecektir.

Ayrıca, URL parametrelerini Enjekte Et ve formları Enjekte Et seçenekleri, bulduğu her URL parametresine ve form'a canary enjekte ederek otomatik olarak yeni bir sekme açacaktır.

Boş Bir Canary Enjekte Et

Sayfanın sahip olabileceği potansiyel sinkleri bulmak istiyorsanız, bunlar istismar edilebilir olmasa bile, boş bir canary arayabilirsiniz.

Mesajları Gönder

DOM Invader, web mesajları kullanarak DOM XSS testi yapmayı sağlar ve şu özelliklere sahiptir:

  1. postMessage() ile gönderilen web mesajlarının kaydedilmesi, Burp Proxy'nin HTTP istek/yanıt geçmişi kaydına benzer.

  2. Web mesajlarının değiştirilmesi ve yeniden gönderilmesi, DOM XSS için manuel test yapmaya benzer, Burp Repeater'ın işlevine.

  3. Web mesajlarının otomatik olarak değiştirilmesi ve DOM XSS'i araştırmak için gönderilmesi.

Mesaj detayları

Her mesaj hakkında detaylı bilgi, üzerine tıklanarak görüntülenebilir; bu, istemci tarafı JavaScript'in mesajın origin, data veya source özelliklerine erişip erişmediğini içerir.

  • origin : Eğer mesajın origin bilgisi kontrol edilmezse, rastgele bir dış alan'dan olay işleyiciye çapraz alan mesajları gönderebilirsiniz. Ancak kontrol ediliyorsa, yine de güvensiz olabilir.

  • data: Payload'un gönderildiği yerdir. Bu veri kullanılmazsa, sink işe yaramaz.

  • source: Genellikle bir iframe'i referans alan kaynak özelliğinin doğrulanıp doğrulanmadığını değerlendirir. Bu kontrol edilse bile, doğrulamanın atlanamayacağına dair bir garanti yoktur.

Bir Mesajı Yanıtla

  1. Mesajlar görünümünden, herhangi bir mesaja tıklayarak mesaj detayları penceresini açın.

  2. Gerekli şekilde Veri alanını düzenleyin.

  3. Gönder butonuna tıklayın.

Prototip Kirlenmesi

DOM Invader ayrıca Prototip Kirlenmesi zafiyetlerini arayabilir. Öncelikle, bunu etkinleştirmeniz gerekir:

Sonra, Object.prototype'a rastgele özellikler eklemenizi sağlayan kaynakları arayacaktır.

Eğer bir şey bulunursa, bulunan kaynağı test etmek için bir Test butonu görünecektir. Üzerine tıklayın, yeni bir sekme açılacak, konsolda bir nesne oluşturun ve testproperty'nin var olup olmadığını kontrol edin:

let b = {}
b.testproperty

Bir kaynak bulduğunuzda bir gadget için tarama yapabilirsiniz:

  1. DOM görünümünde tanımlanan herhangi bir prototip kirlenme kaynağının yanında bulunan Gadget'lar için tara butonuna tıklandığında DOM Invader yeni bir sekme açar. Uygun gadget'lar için tarama başlar.

  2. Bu arada, aynı sekmede DOM Invader sekmesi DevTools panelinde açılmalıdır. Tarama tamamlandığında, tanımlanan gadget'lar aracılığıyla erişilebilen herhangi bir sink DOM görünümünde görüntülenir. Örneğin, innerHTML sink'ine geçirilen html adlı bir gadget özelliği aşağıdaki örnekte gösterilmektedir.

DOM clobbering

Önceki görüntüde DOM clobbering taramasının açılabileceği görülmektedir. Tamamlandığında, DOM Invader DOM clobbering zafiyetlerini aramaya başlayacaktır.

Referanslar

HackTricks'i Destekleyin

Last updated