En esta sección, explicaremos qué es el secuestro de clics, describiremos ejemplos comunes de ataques de secuestro de clics y discutiremos cómo protegerse contra estos ataques.
Que es Clickjacking? o «Secuestro de Clics«
El secuestro de clics es un ataque basado en la interfaz en el que se engaña a un usuario para que haga clic en contenido procesable en un sitio web oculto al hacer clic en otro contenido en un sitio web señuelo. Considere el siguiente ejemplo:
Un usuario de la web accede a un sitio web señuelo (quizás este es un enlace proporcionado por un correo electrónico) y hace clic en un botón para ganar un premio. Sin saberlo, un atacante los engañó para que presionaran un botón oculto alternativo y esto resultó en el pago de una cuenta en otro sitio. Este es un ejemplo de un ataque de clickjacking. La técnica depende de la incorporación de una página web invisible y procesable (o varias páginas) que contenga un botón o enlace oculto, por ejemplo, dentro de un iframe. El iframe se superpone sobre el contenido de la página web de señuelo anticipado del usuario. Este ataque se diferencia de un ataque CSRF en que se requiere que el usuario realice una acción, como hacer clic en un botón, mientras que un ataque CSRF depende de la falsificación de una solicitud completa sin el conocimiento o la entrada del usuario.

La protección contra los ataques CSRF a menudo se proporciona mediante el uso de un token CSRF : un número o nonce específico de la sesión y de un solo uso. El token CSRF no mitiga los ataques de secuestro de clics, ya que se establece una sesión de destino con contenido cargado desde un sitio web auténtico y con todas las solicitudes que se realizan en el dominio. Los tokens CSRF se colocan en las solicitudes y se pasan al servidor como parte de una sesión de comportamiento normal. La diferencia en comparación con una sesión de usuario normal es que el proceso ocurre dentro de un iframe oculto.
Burp Suite Profesional
Pruebas de seguridad más rápidas y confiables.
El kit de herramientas líder para pruebas de penetración web.
Conocer..
Cómo construir un ataque de clickjacking básico
Los ataques de clickjacking usan CSS para crear y manipular capas. El atacante incorpora el sitio web objetivo como una capa de iframe superpuesta en el sitio web señuelo. Un ejemplo que usa la etiqueta de estilo y los parámetros es el siguiente:
...
...decoy web content here...
El iframe del sitio web de destino se coloca dentro del navegador para que haya una superposición precisa de la acción de destino con el sitio web de señuelo utilizando los valores de posición de ancho y alto adecuados. Los valores de posición absoluta y relativa se utilizan para garantizar que el sitio web de destino se superponga con precisión al señuelo, independientemente del tamaño de la pantalla, el tipo de navegador y la plataforma. El índice z determina el orden de apilamiento de las capas de iframe y sitio web. El valor de opacidad se define como 0,0 (o cerca de 0,0) para que el contenido del iframe sea transparente para el usuario. La protección contra el secuestro de clics del navegador podría aplicar una detección de transparencia de iframe basada en umbrales (por ejemplo, la versión 76 de Chrome incluye este comportamiento, pero Firefox no). El atacante selecciona valores de opacidad para que se logre el efecto deseado sin desencadenar comportamientos de protección.
Clickbandit
Aunque puede crear manualmente una prueba de concepto de secuestro de clics como se describe anteriormente, esto puede ser bastante tedioso y llevar mucho tiempo en la práctica. Cuando esté probando el secuestro de clics en la naturaleza, le recomendamos que utilice la herramienta Clickbandit de Burp . Esto le permite usar su navegador para realizar las acciones deseadas en la página enmarcable, luego crea un archivo HTML que contiene una superposición de secuestro de clics adecuada. Puede usar esto para generar una prueba de concepto interactiva en cuestión de segundos, sin tener que escribir una sola línea de HTML o CSS.
Clickjacking con entrada de formulario prellenado
Algunos sitios web que requieren que se completen y envíen formularios permiten el llenado previo de las entradas del formulario mediante parámetros GET antes del envío. Otros sitios web pueden requerir texto antes de enviar el formulario. Como los valores GET forman parte de la URL, la URL de destino se puede modificar para incorporar los valores que elija el atacante y el botón transparente «enviar» se superpone en el sitio señuelo como en el ejemplo básico de clickjacking.
Guiones de ruptura de marcos
Los ataques de clickjacking son posibles siempre que los sitios web puedan ser enmarcados. Por lo tanto, las técnicas preventivas se basan en restringir la capacidad de encuadre de los sitios web. Una protección común del lado del cliente promulgada a través del navegador web es usar secuencias de comandos de ruptura de marcos o ruptura de marcos. Estos se pueden implementar a través de complementos o extensiones de JavaScript del navegador propietario, como NoScript. Los scripts a menudo se diseñan para que realicen algunos o todos los siguientes comportamientos:
- verificar y hacer cumplir que la ventana de la aplicación actual sea la ventana principal o superior,
- hacer visibles todos los marcos,
- evitar hacer clic en marcos invisibles,
- interceptar y señalar posibles ataques de clickjacking al usuario.
Las técnicas de destrucción de marcos a menudo son específicas del navegador y la plataforma y, debido a la flexibilidad de HTML, los atacantes generalmente pueden eludirlas. Como los destructores de marcos son JavaScript, la configuración de seguridad del navegador puede impedir su funcionamiento o, de hecho, es posible que el navegador ni siquiera sea compatible con JavaScript. Una solución eficaz para los atacantes contra los destructores de marcos es utilizar el sandbox atributo iframe de HTML5. Cuando esto se establece con los valores allow-forms o y se omite el valor, el script de destrucción de marcos se puede neutralizar ya que el iframe no puede verificar si es o no la ventana superior: allow-scripts allow-top-navigation
Tanto los allow-forms valores como allow-scripts permiten las acciones especificadas dentro del iframe pero la navegación de nivel superior está deshabilitada. Esto inhibe los comportamientos de ruptura de marcos al tiempo que permite la funcionalidad dentro del sitio objetivo.
Combinación de Clickjacking con un ataque DOM XSS
Hasta ahora, hemos considerado el secuestro de clics como un ataque autónomo. Históricamente, el secuestro de clics se ha utilizado para realizar comportamientos como aumentar los «me gusta» en una página de Facebook. Sin embargo, la verdadera potencia del clickjacking se revela cuando se utiliza como portador de otro ataque, como un ataque DOM XSS . La implementación de este ataque combinado es relativamente sencilla, suponiendo que el atacante haya identificado primero el exploit XSS. El exploit XSS luego se combina con la URL de destino del iframe para que el usuario haga clic en el botón o enlace y, en consecuencia, ejecute el ataque DOM XSS.

Clickjacking de varios pasos
La manipulación del atacante de las entradas a un sitio web de destino puede requerir múltiples acciones. Por ejemplo, un atacante podría querer engañar a un usuario para que compre algo en un sitio web minorista, por lo que los artículos deben agregarse a una cesta de la compra antes de realizar el pedido. Estas acciones pueden ser implementadas por el atacante usando múltiples divisiones o iframes. Dichos ataques requieren una precisión y cuidado considerables desde la perspectiva del atacante para que sean efectivos y sigilosos.
Cómo prevenir los ataques de clickjacking
Hemos discutido un mecanismo de prevención del lado del navegador que se encuentra comúnmente, a saber, los scripts de ruptura de marcos. Sin embargo, hemos visto que a menudo es sencillo para un atacante eludir estas protecciones. En consecuencia, se han diseñado protocolos impulsados por servidores que restringen el uso de iframe del navegador y mitigan el secuestro de clics.
El secuestro de clics es un comportamiento del lado del navegador y su éxito depende de la funcionalidad del navegador y de la conformidad con los estándares web vigentes y las mejores prácticas. La protección del lado del servidor contra el secuestro de clics se proporciona definiendo y comunicando restricciones sobre el uso de componentes como iframes. Sin embargo, la implementación de la protección depende del cumplimiento del navegador y de la aplicación de estas restricciones. Dos mecanismos para la protección contra el secuestro de clics del lado del servidor son X-Frame-Options y Content Security Policy .
Opciones de marco X
X-Frame-Options se introdujo originalmente como un encabezado de respuesta no oficial en Internet Explorer 8 y se adoptó rápidamente en otros navegadores. El encabezado proporciona al propietario del sitio web el control sobre el uso de iframes u objetos para que la inclusión de una página web dentro de un marco pueda prohibirse con la deny directiva:
X-Frame-Options: deny
Alternativamente, el framing puede restringirse al mismo origen que el sitio web usando la sameorigin directiva:
X-Frame-Options: sameorigin
o a un sitio web nombrado usando la allow-from directiva:
X-Frame-Options: allow-from https://normal-website.com
X-Frame-Options no se implementa de manera consistente en todos los navegadores (la allow-from directiva no es compatible con Chrome versión 76 o Safari 12, por ejemplo). Sin embargo, cuando se aplica correctamente junto con la Política de seguridad de contenido como parte de una estrategia de defensa de múltiples capas, puede proporcionar una protección eficaz contra los ataques de clickjacking.
Política de seguridad de contenido ( CSP )
La política de seguridad de contenido (CSP) es un mecanismo de detección y prevención que proporciona mitigación contra ataques como XSS y clickjacking. CSP generalmente se implementa en el servidor web como un encabezado de retorno del formulario:
Content-Security-Policy: policy
donde política es una cadena de directivas de política separadas por punto y coma. El CSP proporciona al navegador del cliente información sobre fuentes permitidas de recursos web que el navegador puede aplicar para la detección e interceptación de comportamientos maliciosos.
La protección contra el secuestro de clics recomendada es incorporar la frame-ancestors directiva en la Política de seguridad de contenido de la aplicación. La frame-ancestors 'none' directiva tiene un comportamiento similar a la deny directiva X-Frame-Options. La frame-ancestors 'self' directiva es ampliamente equivalente a la sameorigin directiva X-Frame-Options. Los siguientes marcos de la lista blanca de CSP solo pertenecen al mismo dominio:
Content-Security-Policy: frame-ancestors 'self';
Alternativamente, el encuadre se puede restringir a sitios con nombre:
Content-Security-Policy: frame-ancestors normal-website.com;
Para ser efectivos contra el secuestro de clics y XSS, los CSP necesitan un desarrollo, implementación y prueba cuidadosos y deben usarse como parte de una estrategia de defensa de múltiples capas.
NORTH NETWORKS es Distribuidor Oficial y brinda licencias nuevas, renovaciones y servicios profesionales de las herramientas DAST, SAST y PenTest mas importantes.
Pongase en contacto y le ayudaremos a analizar sus requerimientos para poder brindarle la herramienta que mejor se ajuste a sus requerimientos.
Si te ha gustado, ¡compártelo con tus amigos!

Burp Suite Profesional
