7.1 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
-
Descubre The PEASS Family, nuestra colección de exclusivos NFTs
-
Obtén el oficial PEASS & HackTricks swag
-
Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
-
Comparte tus trucos de hacking enviando PR al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Descripción
En una situación en la que un atacante puede controlar el argumento href
de una etiqueta <a
con el atributo target="_blank" rel="opener"
que va a ser clicada por una víctima, el atacante apunta este enlace a una web bajo su control (un sitio web malicioso). Entonces, una vez que la víctima hace clic en el enlace y accede al sitio web del atacante, este sitio web malicioso podrá controlar la página original a través del objeto javascript window.opener
.
Si la página no tiene rel="opener"
pero contiene target="_blank"
y tampoco tiene rel="noopener"
también puede ser vulnerable.
Una forma habitual de abusar de este comportamiento sería cambiar la ubicación de la web original a través de window.opener.location = https://atacante.com/victima.html
a una web controlada por el atacante que parezca la original, de modo que pueda imitar el formulario de inicio de sesión del sitio web original y pedir credenciales al usuario.
Sin embargo, tenga en cuenta que como el atacante ahora puede controlar el objeto de ventana de la página original, puede abusar de él de otras maneras para realizar ataques más sigilosos (tal vez modificando eventos de javascript para exfiltrar información a un servidor controlado por él?)
Visión general
Con enlace de retroceso
Enlace entre páginas padre e hijo cuando no se utiliza el atributo de prevención:
Sin enlace de retroceso
Enlace entre páginas padre e hijo cuando se utiliza el atributo de prevención:
Ejemplos
Crea las siguientes páginas en una carpeta y ejecuta un servidor web con python3 -m http.server
Luego, accede a http://127.0.0.1:8000/
vulnerable.html, haz clic en el enlace y observa cómo cambia la URL del sitio web original.
{% code title="vulnerable.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>Victim Site</h1>
<a href="http://127.0.0.1:8000/malicious.html" target="_blank" rel="opener">Controlled by the attacker</a>
</body>
</html>
{% endcode %}
{% code title="malicious.html" %}Archivo malicioso{% endcode %}
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
{% code title="malicious_redir.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>
Propiedades accesibles
El sitio malicioso solo puede acceder a las siguientes propiedades del objeto de referencia javascript opener (que en realidad es una instancia de la clase javascript window) en caso de acceso de origen cruzado (entre dominios):
opener.closed
: Devuelve un valor booleano que indica si una ventana ha sido cerrada o no.opener.frames
: Devuelve todos los elementos iframe en la ventana actual.opener.length
: Devuelve el número de elementos iframe en la ventana actual.opener.opener
: Devuelve una referencia a la ventana que creó la ventana.opener.parent
: Devuelve la ventana principal de la ventana actual.opener.self
: Devuelve la ventana actual.opener.top
: Devuelve la ventana del navegador más superior.
Si los dominios son los mismos, entonces el sitio malicioso puede acceder a todas las propiedades expuestas por el objeto de referencia window javascript.
Prevención
La información de prevención está documentada en la Hoja de trucos de seguridad HTML5.
Referencias
{% embed url="https://owasp.org/www-community/attacks/Reverse_Tabnabbing" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
-
Descubre The PEASS Family, nuestra colección exclusiva de NFTs
-
Obtén el swag oficial de PEASS y HackTricks
-
Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
-
Comparte tus trucos de hacking enviando PR al repositorio hacktricks y al repositorio hacktricks-cloud.