SOME - Execução de Método de Mesma Origem
Tip
Aprenda e pratique AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Navegue pelo catálogo completo do HackTricks Training para as trilhas de assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord, ao grupo do telegram, siga @hacktricks_live no X/Twitter, ou confira a página do LinkedIn e o canal do YouTube.
- Compartilhe hacking tricks enviando PRs para os repositórios github HackTricks e HackTricks Cloud.
Execução de Método de Mesma Origem
Haverá ocasiões em que você pode executar algum javascript limitado em uma página. Por exemplo, no caso em que você pode controlar um valor de callback que será executado.
Nesses casos, uma das melhores coisas que você pode fazer é acessar o DOM para chamar qualquer ação sensível que você encontrar lá (como clicar em um botão). No entanto, geralmente você encontrará essa vulnerabilidade em pequenos endpoints sem nada interessante no DOM.
Nesses cenários, esse ataque será muito útil, porque seu objetivo é ser capaz de abusar da execução limitada de JS dentro de um DOM de uma página diferente do mesmo domínio com ações muito mais interessantes.
Basicamente, o fluxo do ataque é o seguinte:
- Encontrar um callback que você pode abusar (potencialmente limitado a [\w\._]).
- Se não estiver limitado e você puder executar qualquer JS, você poderia apenas abusar disso como um XSS regular.
- Fazer a vítima abrir uma página controlada pelo atacante.
- A página se abrirá em uma nova janela (a nova janela terá o objeto
openerreferenciando a inicial). - A página inicial carregará a página onde o DOM interessante está localizado.
- A segunda página carregará a página vulnerável abusando do callback e usando o objeto
openerpara acessar e executar alguma ação na página inicial (que agora contém o DOM interessante).
Caution
Note que mesmo se a página inicial acessar uma nova URL após ter criado a segunda página, o objeto
openerda segunda página ainda é uma referência válida para a primeira página no novo DOM.Além disso, para que a segunda página possa usar o objeto opener, ambas as páginas devem estar na mesma origem. Esta é a razão pela qual, para abusar dessa vulnerabilidade, você precisa encontrar algum tipo de XSS na mesma origem.
Exploração
- Você pode usar esta forma para gerar um PoC para explorar esse tipo de vulnerabilidade: https://www.someattack.com/Playground/SOMEGenerator
- Para encontrar um caminho DOM para um elemento HTML com um clique, você pode usar esta extensão de navegador: https://www.someattack.com/Playground/targeting_tool
Exemplo
- Você pode encontrar um exemplo vulnerável em https://www.someattack.com/Playground/
- Note que neste exemplo o servidor está gerando código javascript e adicionando ao HTML com base no conteúdo do parâmetro de callback:
<script>opener.{callbacl_content}</script>. É por isso que neste exemplo você não precisa indicar o uso deopenerexplicitamente. - Também confira este writeup de CTF: https://ctftime.org/writeup/36068
Referências
Tip
Aprenda e pratique AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Navegue pelo catálogo completo do HackTricks Training para as trilhas de assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord, ao grupo do telegram, siga @hacktricks_live no X/Twitter, ou confira a página do LinkedIn e o canal do YouTube.
- Compartilhe hacking tricks enviando PRs para os repositórios github HackTricks e HackTricks Cloud.


