diff --git a/src/pentesting-web/xss-cross-site-scripting/dom-invader.md b/src/pentesting-web/xss-cross-site-scripting/dom-invader.md
index 0436d789a..c6bcc82fc 100644
--- a/src/pentesting-web/xss-cross-site-scripting/dom-invader.md
+++ b/src/pentesting-web/xss-cross-site-scripting/dom-invader.md
@@ -4,78 +4,125 @@
## 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, **Burp Suite'in yerleşik Chromium tarayıcısında** kurulu bir tarayıcı aracıdır. **DOM XSS ve diğer istemci tarafı güvenlik açıklarını** (prototip kirlenmesi, DOM çakışması vb.) otomatik olarak **JavaScript kaynaklarını ve hedeflerini enstrümante ederek** tespit etmeye yardımcı olur. Eklenti, Burp ile birlikte gelir ve yalnızca etkinleştirilmesi gerekir.
-DOM Invader, tarayıcının Geliştirici Araçları panelinde aşağıdakileri sağlayan bir sekme entegre eder:
+DOM Invader, tarayıcının Geliştirici Araçları paneline bir sekme ekler ve bu sekme ile şunları yapabilirsiniz:
-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ı.
+1. **Gerçek zamanlı olarak kontrol edilebilir hedefleri** tanımlayın; bağlam (özellik, HTML, URL, JS) ve uygulanan sanitizasyon dahil.
+2. **`postMessage()` web-mesajlarını kaydedin, düzenleyin ve yeniden gönderin**, veya eklentinin bunları otomatik olarak değiştirmesine izin verin.
+3. **İstemci tarafı prototip kirlenmesi kaynaklarını tespit edin ve gadget→sink zincirlerini tarayın**, anında PoC'ler oluşturun.
+4. **DOM çakışma vektörlerini bulun** (örneğin, global değişkenleri geçersiz kılan `id` / `name` çakışmaları).
+5. **Davranışı ince ayar yapın**; zengin bir Ayarlar UI'si (özel kanarya, otomatik enjekte, yönlendirme engelleme, kaynak/hedef listeleri vb.) aracılığıyla.
-### Etkinleştir
+---
-Burp'ın yerleşik tarayıcısında **Burp uzantısına** gidin ve etkinleştirin:
+### 1. Etkinleştir
-Şimdi sayfayı yenileyin ve **Geliştirici Araçları** içinde **DOM Invader sekmesini** bulacaksınız:
+1. **Proxy ➜ Intercept ➜ Open Browser** (Burp’ın gömülü tarayıcısı) açın.
+2. **Burp Suite** logosuna (sağ üstte) tıklayın. Gizliyse, önce yapboz parçasına tıklayın.
+3. **DOM Invader** sekmesinde, **Enable DOM Invader**'ı AÇIK konuma getirin ve **Reload**'a basın.
+4. Geliştirici Araçları'nı açın ( `F12` / Sağ tıklayın ➜ İncele ) ve sabitleyin. Yeni bir **DOM Invader** paneli görünür.
-
+> Burp, durumu profil başına hatırlar. Gerekirse *Ayarlar ➜ Araçlar ➜ Burp’ın tarayıcısı ➜ Ayarları sakla...* altında devre dışı bırakın.
-### Bir Canary Enjekte Et
+### 2. Bir Kanarya 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.
+Bir **kanarya**, DOM Invader'ın takip ettiği rastgele bir işaretçi dizesidir (örneğin, `xh9XKYlV`). Şunları yapabilirsiniz:
-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.
+* **Kopyalayın** ve parametrelerde, formlarda, Web-Socket çerçevelerinde, web-mesajlarında vb. manuel olarak enjekte edin.
+* **Inject URL params / Inject forms** butonlarını kullanarak, kanaryanın her sorgu anahtar/değerine veya form alanına otomatik olarak eklendiği yeni bir sekme açın.
+* **Boş bir kanarya** arayın, böylece istismar edilebilirlikten bağımsız olarak tüm hedefleri ortaya çıkarın (keşif için harika).
-### Boş Bir Canary Enjekte Et
+#### Özel kanarya (2025+)
-Sayfanın potansiyel sinklerini bulmak istiyorsanız, bunlar istismar edilebilir olmasa bile, **boş bir canary arayabilirsiniz**.
+Burp 2024.12, **Kanarya ayarlarını** tanıttı (Burp logosu ➜ DOM Invader ➜ Kanarya). Şunları yapabilirsiniz:
-### Mesajları Gönder
+* **Rastgeleleştirin** veya **özel bir dize** ayarlayın (çoklu sekme testi için veya varsayılan değer sayfada doğal olarak göründüğünde yararlıdır).
+* Değeri panoya **kopyalayın**.
+* Değişiklikler **Reload** gerektirir.
-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ıyla benzerlik gösterir.
-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 benzer.
-3. **Web mesajlarının otomatik olarak değiştirilmesi** ve DOM XSS'yi araştırmak için gönderilmesi.
+### 3. Web-mesajları (`postMessage`)
-#### Mesaj detayları
+**Messages** alt sekmesi, her `window.postMessage()` çağrısını kaydeder ve `origin`, `source` ve `data` kullanımını gösterir.
-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.
+• **Değiştir ve yeniden gönder**: bir mesaja çift tıklayın, `data`yı düzenleyin ve **Gönder**'e basın (Burp Repeater benzeri).
-- **`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.
+• **Otomatik fuzz**: ayarlarda **Postmessage interception ➜ Auto-mutate**'yi etkinleştirerek DOM Invader'ın kanarya tabanlı yükleri oluşturmasına ve bunları işleyiciye yeniden oynamasına izin verin.
-#### Bir mesaja yanıt ver
+Alan anlamı özeti:
-1. **Mesajlar** görünümünden, mesaj detayları penceresini açmak için herhangi bir mesaja tıklayın.
-2. Gerekli şekilde **Veri** alanını düzenleyin.
-3. **Gönder** butonuna tıklayın.
+* **origin** – işleyicinin `event.origin`'i doğrulayıp doğrulamadığı.
+* **data** – yük konumu. Kullanılmıyorsa, hedef önemsizdir.
+* **source** – iframe / pencere referansı doğrulaması; genellikle katı köken kontrolünden daha zayıftır.
-### Prototip Kirlenmesi
+---
-DOM Invader ayrıca **Prototip Kirlenmesi zafiyetlerini** arayabilir. Öncelikle, bunu etkinleştirmeniz gerekir:
+### 4. Prototip Kirlenmesi
-
+**Ayarlar ➜ Saldırı türleri ➜ Prototip kirlenmesi** altında etkinleştirin.
-Sonra, **`Object.prototype`**'a rastgele özellikler eklemenizi sağlayan **kaynakları** arayacaktır.
+İş akışı:
+
+1. **Göz atın** – DOM Invader, URL/sorgu/hash veya JSON web-mesajlarında bulunan kirlenme **kaynaklarını** (`__proto__`, `constructor`, `prototype`) işaretler.
+2. **Test edin** – *Test* butonuna tıklayarak `Object.prototype.testproperty`'nin var olması gereken bir PoC sekmesi açın:
-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:
```javascript
-let b = {}
-b.testproperty
+let obj = {};
+console.log(obj.testproperty); // ➜ 'DOM_INVADER_PP_POC'
```
-Bir kaynak bulduğunuzda **bir alet için tarama yapabilirsiniz**:
+3. **Gadget'leri tarayın** – DOM Invader, özellik adlarını brute force ile dener ve herhangi birinin tehlikeli hedeflere (örneğin, `innerHTML`) ulaşıp ulaşmadığını takip eder.
+4. **İstismar edin** – bir gadget-hedef zinciri bulunduğunda, bir *Exploit* butonu görünür ve kaynak + gadget + hedefi zincirleyerek uyarıyı tetikler.
-1. **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.
-2. 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çirilen `html` adlı bir alet özelliği aşağıdaki örnekte gösterilmektedir.
+Gelişmiş ayarlar (dişli simgesi):
-## DOM kirlenmesi
+* **CSP / X-Frame-Options'ı kaldırın**; gadget taraması sırasında iframe'lerin çalışabilir kalmasını sağlamak için.
+* **Teknikleri ayrı çerçevelerde tarayın**; `__proto__` ile `constructor` arasındaki etkileşimi önlemek için.
+* **Teknikleri** kırılgan uygulamalar için bireysel olarak devre dışı bırakın.
-Ö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**.
+---
+
+### 5. DOM Çakışması
+
+**Saldırı türleri ➜ DOM çakışması**'nı açın. DOM Invader, `id`/`name` nitelikleri global değişkenlerle veya form nesneleriyle çakışan dinamik olarak oluşturulan öğeleri izler (`` → `window.location`'ı geçersiz kılar). Kullanıcı kontrolündeki işaretlemenin değişken değiştirmesine yol açtığı her durumda bir giriş üretilir.
+
+---
+
+## 6. Ayarlar Genel Görünümü (2025)
+
+DOM Invader artık **Ana / Saldırı Türleri / Çeşitli / Kanarya** kategorilerine ayrılmıştır.
+
+1. **Ana**
+* **DOM Invader'ı Etkinleştir** – global anahtar.
+* **Postmessage interception** – mesaj kaydını aç/kapat; otomatik mutasyon için alt anahtarlar.
+* **Özel Kaynaklar/Hedefler** – *dişli simgesi* ➜ belirli hedefleri (örneğin, `eval`, `setAttribute`) etkinleştirip/devre dışı bırakın; bu hedefler uygulamayı bozabilir.
+
+2. **Saldırı Türleri**
+* **Prototip kirlenmesi** (teknik başına ayarlarla).
+* **DOM çakışması**.
+
+3. **Çeşitli**
+* **Yönlendirme önleme** – istemci tarafı yönlendirmelerini engelleyin, böylece hedef listesi kaybolmaz.
+* **Yönlendirmeden önce kesme noktası** – yönlendirmeden hemen önce JS'yi duraklatın, çağrı yığınını incelemek için.
+* **Tüm kaynaklara kanarya enjekte et** – kanaryayı her yere otomatik olarak enjekte edin; yapılandırılabilir kaynak/parametre izin listesi.
+
+4. **Kanarya**
+* Görüntüle / rastgeleleştir / özel kanarya ayarla; panoya kopyala. Değişiklikler tarayıcıyı yeniden yüklemeyi gerektirir.
+
+---
+
+### 7. İpuçları ve İyi Uygulamalar
+
+* **Ayrı bir kanarya kullanın** – `test` gibi yaygın dizelerden kaçının, aksi takdirde yanlış pozitifler oluşur.
+* **Ağır hedefleri** (`eval`, `innerHTML`) geçici olarak devre dışı bırakın, aksi takdirde sayfa işlevselliği bozulabilir.
+* **Burp Repeater & Proxy ile birleştirin** – savunmasız bir durumu üreten tarayıcı isteği/yanıtını çoğaltın ve son istismar URL'lerini oluşturun.
+* **Çerçeve kapsamını unutmayın** – kaynaklar/hedefler, tarama bağlamına göre görüntülenir; iframe'ler içindeki güvenlik açıkları manuel odaklanma gerektirebilir.
+* **Kanıtları dışa aktarın** – DOM Invader paneline sağ tıklayın ➜ *Ekran görüntüsünü kaydet* raporlara eklemek için.
+
+---
## Referanslar
@@ -85,5 +132,7 @@ Bir kaynak bulduğunuzda **bir alet için tarama yapabilirsiniz**:
- [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)
+- [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/canary](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/canary)
+- [https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/misc](https://portswigger.net/burp/documentation/desktop/tools/dom-invader/settings/misc)
{{#include ../../banners/hacktricks-training.md}}