# 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**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'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: 1. 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. 2. 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. 3. **İstemci tarafı prototip kirliliği** kaynaklarının tespiti ve riskli sızıntılara gönderilen kontrol edilebilir cihazların taranması. 4. **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 **form**a **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: 1. `postMessage()` ile gönderilen **web mesajlarının** günlüğe kaydedilmesi, Burp Proxy'nin HTTP istek/yanıt geçmişi kaydı gibi. 2. 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. 3. 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 1. **Mesajlar** görünümünden herhangi bir mesaja tıklayarak mesaj ayrıntıları iletişim kutusunu açın. 2. Gerekli olduğunda **Veri** alanını düzenleyin. 3. **Gönder**e 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: ```javascript let b = {} b.testproperty ``` Bir kaynak bulduğunuzda **gadget taraması yapabilirsiniz**: 1. **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. 2. 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 iletilen `html` 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) * [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling](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/dom-xss) * [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages](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/prototype-pollution) * [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering](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**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.** * **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.