# Iframe'lerle SOP Geçme - 2
AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! * Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin. * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin. * [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
## SOP-2'de Iframe'ler Bu [**zorluk**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc) için [**çözümde**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc/solution), [**@Strellic\_**](https://twitter.com/Strellic\_) önceki bölümdeki benzer bir yöntem öneriyor. Hadi kontrol edelim. Bu zorlukta saldırganın aşması gereken şey: ```javascript if (e.source == window.calc.contentWindow && e.data.token == window.token) { ``` Eğer yaparsa, **innerHTML** ile temizlenmeden sayfaya yazılacak HTML içeriği ile birlikte bir **postmessage** gönderebilir ve böylece **XSS** saldırısı gerçekleştirebilir. İlk kontrolü atlatmanın yolu, **window.calc.contentWindow**'u **undefined** ve **e.source**'u **null** yapmaktır: * **window.calc.contentWindow** aslında **document.getElementById("calc")**'tır. **document.getElementById**'i **** ile değiştirebilirsiniz (Sanitizer API -[burada](https://wicg.github.io/sanitizer-api/#dom-clobbering)-, varsayılan durumunda DOM clobbering saldırılarına karşı koruma sağlamak için yapılandırılmamıştır). * Bu nedenle, **document.getElementById("calc")**'i **
** ile değiştirebilirsiniz. Böylece **window.calc** **undefined** olacaktır. * Şimdi, **e.source**'un **undefined** veya **null** olması gerekmektedir (çünkü `==` yerine `===` kullanıldığından, **null == undefined** **True**'dır). Bunu elde etmek "kolaydır". Bir **iframe** oluşturup ondan bir **postMessage** gönderir ve hemen ardından iframe'i **kaldırırsanız**, **e.origin** **null** olacaktır. Aşağıdaki kodu kontrol edin: ```javascript let iframe = document.createElement('iframe'); document.body.appendChild(iframe); window.target = window.open("http://localhost:8080/"); await new Promise(r => setTimeout(r, 2000)); // wait for page to load iframe.contentWindow.eval(`window.parent.target.postMessage("A", "*")`); document.body.removeChild(iframe); //e.origin === null ``` **İkinci kontrolü** atlamak için **`token`** değerini `null` olarak göndermek ve **`window.token`** değerini **`undefined`** yapmak gerekmektedir: * `token` değerini `null` olarak postMessage ile göndermek basittir. * **`window.token`**, **`document.cookie`** kullanan **`getCookie`** fonksiyonunu çağırır. Unutmayın ki **`null`** kökenli sayfalarda **`document.cookie`**'ye erişim her zaman bir **hata** tetikler. Bu, **`window.token`**'ın **`undefined`** değerine sahip olmasını sağlar. Son çözüm [**@terjanq**](https://twitter.com/terjanq) tarafından [**aşağıdaki**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html) gibi olmuştur: ```html ```
AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! * Bir **cybersecurity şirketinde çalışıyor musunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin. * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin. * [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.