Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Dans la [**solution**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc/solution) pour ce [**challenge**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/obligatory-calc)**,** [**@Strellic\_**](https://twitter.com/Strellic\_) propose une méthode similaire à la section précédente. Vérifions cela.
* **`window.calc.contentWindow`** est en fait **`document.getElementById("calc")`**. Vous pouvez écraser **`document.getElementById`** avec **`<img name=getElementById />`** (notez que l'API Sanitizer -[ici](https://wicg.github.io/sanitizer-api/#dom-clobbering)- n'est pas configurée pour protéger contre les attaques de clobbering DOM dans son état par défaut).
* Maintenant, nous avons besoin que **`e.source`** soit **`undefined`** ou **`null`** (parce que `==` est utilisé au lieu de `===`, **`null == undefined`** est **`True`**). Obtenir cela est "facile". Si vous créez un **iframe** et **envoyez** un **postMessage** depuis celui-ci et que vous **supprimez** immédiatement l'iframe, **`e.origin`** va être **`null`**. Vérifiez le code suivant
Pour contourner la **deuxième vérification** concernant le token, il suffit d'envoyer **`token`** avec la valeur `null` et de rendre la valeur de **`window.token`** **`undefined`** :
* **`window.token`** lors de l'appel de la fonction **`getCookie`** qui utilise **`document.cookie`**. Notez que tout accès à **`document.cookie`** dans des pages d'origine **`null`** déclenche une **erreur**. Cela fera en sorte que **`window.token`** ait la valeur **`undefined`**.
La solution finale de [**@terjanq**](https://twitter.com/terjanq) est la [**suivante**](https://gist.github.com/terjanq/0bc49a8ef52b0e896fca1ceb6ca6b00e#file-calc-html) :
Apprenez et pratiquez le hacking AWS :<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Formation Expert Red Team AWS (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Apprenez et pratiquez le hacking GCP : <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Formation Expert Red Team GCP (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.