Bypassing SOP with Iframes - 1
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Neste desafio criado por NDevTK e Terjanq, você precisa explorar um XSS no código
O problema principal é que a página principal usa DomPurify para enviar o data.body
, então, para enviar seus próprios dados html para esse código, você precisa burlar e.origin !== window.origin
.
Vamos ver a solução que eles propõem.
Quando //example.org
é incorporado em um iframe sandboxed, então a origem da página será null
, ou seja, window.origin === null
. Portanto, apenas incorporando o iframe via <iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">
poderíamos forçar a origem null
.
Se a página fosse incorporável, você poderia burlar essa proteção dessa forma (os cookies também podem precisar ser configurados para SameSite=None
).
O fato menos conhecido é que quando o valor sandbox allow-popups
é definido, então o popup aberto irá herdar todos os atributos sandboxed a menos que allow-popups-to-escape-sandbox
seja definido.
Assim, abrir um popup de uma origem nula fará com que window.origin
dentro do popup também seja null
.
Portanto, para este desafio, alguém poderia criar um iframe, abrir um popup para a página com o manipulador de código XSS vulnerável (/iframe.php
), como window.origin === e.origin
porque ambos são null
, é possível enviar um payload que irá explorar o XSS.
Esse payload obterá o identificador e enviará um XSS de volta para a página principal (a página que abriu o popup), que irá mudar a localização para o vulnerável /iframe.php
. Como o identificador é conhecido, não importa que a condição window.origin === e.origin
não seja satisfeita (lembre-se, a origem é o popup do iframe que tem origem null
) porque data.identifier === identifier
. Então, o XSS será acionado novamente, desta vez na origem correta.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)