mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 07:01:09 +00:00
113 lines
8.4 KiB
Markdown
113 lines
8.4 KiB
Markdown
# DOM İstilacısı
|
||
|
||
<details>
|
||
|
||
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
|
||
|
||
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 (https://github.com/sponsors/carlospolop) 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) koleksiyonumuz
|
||
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) 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.
|
||
|
||
</details>
|
||
|
||
## DOM İstilacısı
|
||
|
||
DOM İstilacısı, Burp'un yerleşik tarayıcısına yüklenen 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 İstilacısı, 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 kaydedilmesi, düzenlenmesi ve yeniden gönderilmesi**. DOM İstilacısı 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:
|
||
|
||
<figure><img src="../../.gitbook/assets/image (1129).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Şimdi sayfayı yenileyin ve **Dev Araçlar**'da **DOM İstilacısı sekmesini** bulacaksınız:
|
||
|
||
<figure><img src="../../.gitbook/assets/image (695).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
### Bir Kanarya Enjekte Edin
|
||
|
||
Önceki görüntüde **rastgele bir karakter grubu olan Kanarya'yı** görebilirsiniz. Şimdi bunu web'in farklı bölümlerine (parametreler, formlar, url...) enjekte etmeye başlamalısınız ve her seferinde aramaya tıklamalısınız. DOM İstilacısı, **kanaryanın ilginç bir sızıntıda sona erip ermediğini** kontrol edecektir.
|
||
|
||
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 sömürülebilir olmasa bile **boş bir kanarya arayabilirsiniz**.
|
||
|
||
### Mesajlar Gönderme
|
||
|
||
DOM İstilacısı, web mesajlarını kullanarak DOM XSS testi yapmaya olanak tanır 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ı 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şiklik** 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 bilgiler, 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 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
|
||
|
||
1. **Mesajlar** görünümünden herhangi bir mesaja tıklayarak mesaj ayrıntıları iletişim kutusunu açın.
|
||
2. Gerekirse **Veri** alanını düzenleyin.
|
||
3. **Gönder**e tıklayın.
|
||
|
||
### Prototip Kirliliği
|
||
|
||
DOM İstilacısı ayrıca **Prototip Kirliliği zafiyetlerini arayabilir**. İlk olarak, bunu etkinleştirmeniz gerekir:
|
||
|
||
<figure><img src="../../.gitbook/assets/image (1026).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
Daha sonra, **`Object.prototype`'ye keyfi özellikler eklemenizi sağlayan 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 herhangi bir belirlenmiş 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)
|
||
|
||
<details>
|
||
|
||
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
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) koleksiyonumuzu
|
||
* **💬 [Discord grubuna](https://discord.gg/hRep4RUj7f) katılın veya [telegram grubuna](https://t.me/peass) katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
|
||
* **Hacking hilelerinizi 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.
|
||
|
||
</details>
|