hacktricks/pentesting-web/xss-cross-site-scripting/dom-invader.md

8.4 KiB
Raw Blame History

DOM Invader

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'ı desteklemenin diğer yolları:

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:

  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 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ı'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:

  1. 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.
  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 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

  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ö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:

  1. 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.
  2. 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 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

AWS hacklemeyi sıfırdan kahraman olmaya öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'i desteklemenin diğer yolları: