SOME - Same Origin Method Execution

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

WhiteIntel es un motor de búsqueda alimentado por la dark web que ofrece funcionalidades gratuitas para verificar si una empresa o sus clientes han sido comprometidos por malwares de robo.

El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.

Puedes visitar su sitio web y probar su motor de forma gratuita en:


Ejecución de Método de Mismo Origen

Habrá ocasiones en las que puedas ejecutar algo de javascript limitado en una página. Por ejemplo, en el caso en el que puedas controlar un valor de devolución de llamada que se ejecutará.

En esos casos, una de las mejores cosas que podrías hacer es acceder al DOM para llamar a cualquier acción sensible que puedas encontrar allí (como hacer clic en un botón). Sin embargo, generalmente encontrarás esta vulnerabilidad en pequeños puntos finales sin nada interesante en el DOM.

En esos escenarios, este ataque será muy útil, porque su objetivo es poder abusar de la ejecución de JS limitada dentro de un DOM desde una página diferente del mismo dominio con acciones mucho más interesantes.

Básicamente, el flujo del ataque es el siguiente:

  • Encuentra un callback que puedas abusar (potencialmente limitado a [\w\._]).

  • Si no está limitado y puedes ejecutar cualquier JS, simplemente podrías abusar de esto como un XSS regular.

  • Haz que la víctima abra una página controlada por el atacante.

  • La página se abrirá en una ventana diferente (la nueva ventana tendrá el objeto opener haciendo referencia a la inicial).

  • La página inicial cargará la página donde se encuentra el DOM interesante.

  • La segunda página cargará la página vulnerable abusando del callback y usando el objeto opener para acceder y ejecutar alguna acción en la página inicial (que ahora contiene el DOM interesante).

Ten en cuenta que incluso si la página inicial accede a una nueva URL después de haber creado la segunda página, el objeto opener de la segunda página sigue siendo una referencia válida a la primera página en el nuevo DOM.

Además, para que la segunda página pueda usar el objeto opener, ambas páginas deben estar en el mismo origen. Esta es la razón por la que, para abusar de esta vulnerabilidad, necesitas encontrar algún tipo de XSS en el mismo origen.

Explotación

Ejemplo

  • Puedes encontrar un ejemplo vulnerable en https://www.someattack.com/Playground/

  • Ten en cuenta que en este ejemplo el servidor está generando código javascript y añadiéndolo al HTML basado en el contenido del parámetro de devolución de llamada: <script>opener.{callbacl_content}</script> . Por eso, en este ejemplo no es necesario indicar el uso de opener explícitamente.

  • También revisa este análisis de CTF: https://ctftime.org/writeup/36068

Referencias

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

Última actualización