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 (https://github.com/sponsors/carlospolop)!
- Resmi PEASS & HackTricks ürünlerini edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm** takip edin.**
- Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
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 etmeye yardımcı olur. Aracı, bir 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 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ı'nda DOM Invader sekmesini bulacaksınız:
Bir Kanarya Enjekte Edin
Önceki görüntüde rastgele karakter grubunu görebilirsiniz, bu Kanarya'dır. Ş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, sömürülebilecek ilginç bir sızıntıya Kanarya'nın ulaşıp ulaşmadığını kontrol edecektir.
Ayrıca, URL parametrelerini enjekte et ve Formları enjekte et** seçenekleri, her URL parametresine ve bulduğu forma Kanarya'yı enjekte ederek otomatik olarak yeni bir sekme açacaktır.
Boş Bir Kanarya Enjekte Edin
Eğer sayfanın potansiyel sızıntılara sahip olabileceği yerleri bulmak istiyorsanız, bunlar sömürülebilir olmasa bile boş bir kanarya arayabilirsiniz.
Mesajlar Gönderme
DOM Invader, web mesajlarını kullanarak DOM XSS testi yapmaya olanak tanır ve şunlar gibi özelliklere sahiptir:
postMessage()
aracılığıyla gönderilen web mesajlarının kaydedilmesi, Burp Proxy'nin HTTP istek/yanıt geçmişi kaydı tutma işlemine benzer.- 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 istemci tarafındaki JavaScript'in mesajın origin
, data
veya source
özelliklerine erişip erişmediğini içerir.
origin
: Mesajın köken bilgileri kontrol edilmediyse, herhangi bir harici alandaki olay işleyicisine çapraz köken mesajları gönderebilirsiniz. Ancak kontrol edilirse 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 edilse 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.
- Gerekirse Veri alanını düzenleyin.
- Gönderi 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 eklemenizi sağlayan kaynakları arayacaktır.
Herhangi bir şey bulunursa, bulunan kaynağı test etmek için bir Test düğmesi 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 bulduktan sonra gadget taraması yapabilirsiniz:
- DOM görünümünde tanımlanan herhangi bir prototip kirliliği kaynağının yanında bulunan Gadgetları Tara düğmesine tıklandığında, DOM Invader tarafından yeni bir sekme açılır. Uygun gadgetlar için tarama işlemi başlar.
- Aynı sekmede, tarama tamamlandıktan sonra, tanımlanan gadgetlar 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 olmaya öğrenin htARTE (HackTricks AWS Red Team Expert) ile!
HackTricks'i 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 koleksiyonumuzu
- 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm'da takip edin.
- Hacking püf noktalarınızı paylaşarak PR'ler göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.