DOM Invader
Reading time: 4 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
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:
- DOM XSS testi için bir web sayfasındaki kontrol edilebilir sinklerin tanımlanması, bağlam ve sanitizasyon detayları sağlar.
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.- İstemci tarafı prototip kirlenmesi kaynaklarının tespiti ve riskli sinklere gönderilen kontrol edilebilir gadgetların taranması.
- 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ı içinde DOM Invader sekmesini bulacaksınız:
Bir Canary Enjekte Et
Önceki resimde bir rastgele karakter grubu, yani Canary görebilirsiniz. Şimdi bunu webin farklı kısımlarına (parametreler, formlar, url...) enjekte etmeye başlamalısınız ve her seferinde arama butonuna tıklayın. DOM Invader, canary'nin herhangi bir ilginç sinkte sonlanıp sonlanmadığını kontrol edecektir.
Ayrıca, URL parametrelerini Enjekte Et ve Formları Enjekte Et seçenekleri, bulduğu her URL parametresine ve formuna canary'yi enjekte ederek otomatik olarak yeni bir sekme açacaktır.
Boş Bir Canary Enjekte Et
Sayfanın potansiyel sinklerini 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:
postMessage()
ile gönderilen web mesajlarının kaydedilmesi, Burp Proxy'nin HTTP istek/yanıt geçmişi kaydıyla benzerlik gösterir.- Web mesajlarının değiştirilmesi ve yeniden gönderilmesi, DOM XSS için manuel test yapmaya benzer, Burp Repeater'ın işlevine benzer.
- Web mesajlarının otomatik olarak değiştirilmesi ve DOM XSS'yi 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 üzerinden olay işleyicisine ç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 mesaja yanıt ver
- Mesajlar görünümünden, mesaj detayları penceresini açmak için herhangi bir mesaja tıklayın.
- Gerekli şekilde Veri alanını düzenleyin.
- 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, konsolda bir nesne oluşturun ve testproperty
'nin var olup olmadığını kontrol edin:
let b = {}
b.testproperty
Bir kaynak bulduğunuzda bir alet için tarama yapabilirsiniz:
- DOM görünümünde herhangi bir tanımlanmış prototip kirlenme kaynağının yanında bulunan Gadget'leri Tara butonuna tıklandığında, DOM Invader yeni bir sekme açar. Uygun aletler için tarama başlar.
- Bu arada, aynı sekmede, DevTools panelinde DOM Invader sekmesi açılmalıdır. Tarama tamamlandığında, tanımlanan aletler aracılığıyla erişilebilen herhangi bir sink DOM görünümünde görüntülenir. Örneğin,
innerHTML
sink'ine geçirilenhtml
adlı bir alet özelliği aşağıdaki örnekte gösterilmektedir.
DOM kirlenmesi
Önceki görüntüde DOM kirlenmesi taramasının açılabileceği görülmektedir. Tamamlandığında, DOM Invader DOM kirlenmesi açıklarını aramaya başlayacaktır.
Referanslar
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.