8.4 KiB
DOM Invader
AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuzu
- **💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm'da takip edin.
- Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
DOM Invader
DOM Invader, Burp'un yerleşik tarayıcısına kurulan bir tarayıcı aracıdır. Web mesajları ve prototip kirliliği de dahil olmak üzere çeşitli kaynaklar ve sızıntılar kullanarak DOM XSS zafiyetlerini tespit etmede yardımcı olur. Aracın uzantı olarak önceden yüklenmiştir.
DOM Invader, aşağıdakileri sağlayan tarayıcının DevTools panelinde bir sekme entegre eder:
- DOM XSS testi için bir web sayfasındaki kontrol edilebilir sızıntıların tanımlanması, bağlam ve temizleme ayrıntıları sağlar.
- DOM XSS testi için
postMessage()
yöntemi aracılığıyla gönderilen web mesajlarının günlüğe kaydedilmesi, düzenlenmesi ve yeniden gönderilmesi. DOM Invader ayrıca özel olarak oluşturulmuş web mesajlarını kullanarak zafiyetleri otomatik olarak tespit edebilir. - İstemci tarafı prototip kirliliği kaynaklarının tespiti ve riskli sızıntılara gönderilen kontrol edilebilir cihazların taranması.
- DOM clobbering zafiyetlerinin tanımlanması.
Etkinleştirme
Burp'un yerleşik tarayıcısında Burp uzantısına gidin ve etkinleştirin:
Şimdi sayfayı yenileyin ve Dev Araçlar'da DOM Invader sekmesini bulacaksınız:
Bir Kanarya Enjekte Edin
Önceki görüntüde rastgele bir karakter grubu, yani Kanarya görebilirsiniz. Şimdi bunu webin farklı bölümlerine (parametreler, formlar, url...) enjekte etmeye başlamalısınız ve her seferinde aramayı tıklamalısınız. DOM Invader, kanaryanın ilginç bir sızıntıda sonlandığını kontrol edecektir ve bu sızıntının istismar edilebileceğini gösterecektir.
Ayrıca, URL parametrelerini enjekte et ve Formları enjekte et** seçenekleri, her bulduğu URL parametresine ve forma kanaryayı enjekte ederek otomatik olarak yeni bir sekme açacaktır.
Boş Bir Kanarya Enjekte Edin
Eğer sayfanın sahip olabileceği potansiyel sızıntıları bulmak istiyorsanız, bunlar istismar edilebilir olmasa bile boş bir kanarya arayabilirsiniz.
Mesajlar Gönderme
DOM Invader, web mesajlarını kullanarak DOM XSS test etmeye olanak tanır ve şunlar gibi özelliklere sahiptir:
postMessage()
ile gönderilen web mesajlarının günlüğe kaydedilmesi, Burp Proxy'nin HTTP istek/yanıt geçmişi kaydı gibi.- DOM XSS için manuel olarak test etmek için web mesajlarını düzenleme ve yeniden gönderme, Burp Repeater'ın işlevine benzer.
- DOM XSS'yi sorgulamak için otomatik değişiklikler ve web mesajlarının gönderilmesi.
Mesaj ayrıntıları
Her mesaj hakkında ayrıntılı bilgi, mesajın üzerine tıklanarak görüntülenebilir ve bu bilgi, istemci tarafındaki JavaScript'in mesajın origin
, data
veya source
özelliklerine erişip erişmediğini içerir.
origin
: Mesajın köken bilgisi kontrol edilmediyse, olay işleyicisine herhangi bir harici alandan çapraz kökenli mesajlar gönderebilirsiniz. Ancak kontrol edilmişse yine de güvensiz olabilir.data
: Bu, yükün gönderildiği yerdir. Bu veri kullanılmıyorsa, sızıntı işe yaramaz.source
: Genellikle bir iframe'e referans olan kaynak özelliğinin, köken yerine doğrulandığını değerlendirir. Bu kontrol edilmiş olsa bile, doğrulamanın atlatılamayacağını garanti etmez.
Bir mesajı yanıtla
- Mesajlar görünümünden herhangi bir mesaja tıklayarak mesaj ayrıntıları iletişim kutusunu açın.
- Gerekli olduğunda Veri alanını düzenleyin.
- Göndere tıklayın.
Prototip Kirliliği
DOM Invader ayrıca Prototip Kirliliği zafiyetlerini arayabilir. İlk olarak, bunu etkinleştirmeniz gerekir:
Daha sonra, Object.prototype
'ye keyfi özellikler eklemenize olanak tanıyan kaynakları arayacaktır.
Herhangi bir şey bulunursa, Test düğmesi görünecek ve bulunan kaynağı test etmek için üzerine tıklamanız gerekecektir. Yeni bir sekme açılacak, konsolda bir nesne oluşturacak ve testproperty
'nin var olup olmadığını kontrol edecektir:
let b = {}
b.testproperty
Bir kaynak bulduğunuzda gadget taraması yapabilirsiniz:
- Tarama için gadgetları tarayın düğmesine tıklandığında, DOM görünümünde tanımlanan herhangi bir prototip kirliliği kaynağının yanında bulunan Scan for gadgets düğmesine tıklandığında, DOM Invader tarafından yeni bir sekme açılır. Ardından uygun gadget'lar için tarama başlar.
- Aynı sekmede, tarama tamamlandıktan sonra, tanımlanan gadget'lar aracılığıyla erişilebilen herhangi bir sızıntı, DOM görünümünde gösterilir. Örneğin,
innerHTML
sızıntısına iletilenhtml
adlı bir gadget özelliği aşağıdaki örnekte gösterilir.
DOM clobbering
Önceki görüntüde DOM clobbering taramasının açılabileceği görülebilir. Bittiğinde, DOM Invader DOM clobbering zafiyetlerini 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
AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Family'yi keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm** takip edin.**
- Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.