# Clickjacking
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)! Otras formas de apoyar a HackTricks: * Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com) * Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos * **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** * **Comparte tus trucos de hacking enviando PRs a los repositorios de github** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
\ Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** fácilmente con las herramientas comunitarias **más avanzadas**.\ Obtén Acceso Hoy: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## ¿Qué es Clickjacking? Clickjacking es un ataque que **engaña** a un **usuario** para que **haga clic** en un **elemento** de una página web que es **invisible** o está disfrazado como otro elemento. Esto puede hacer que los usuarios descarguen malware sin saberlo, visiten páginas web maliciosas, proporcionen credenciales o información sensible, transfieran dinero o compren productos en línea. (De [aquí](https://www.imperva.com/learn/application-security/clickjacking/)). ### Truco de formularios prellenados A veces es posible **rellenar el valor de los campos de un formulario usando parámetros GET al cargar una página**. Un atacante puede abusar de este comportamiento para llenar un formulario con datos arbitrarios y enviar la carga útil de clickjacking para que el usuario presione el botón Enviar. ### Llenar formulario con Arrastrar y Soltar Si necesitas que el usuario **rellene un formulario** pero no quieres pedirle directamente que escriba información específica (como el correo electrónico o una contraseña específica que conoces), puedes simplemente pedirle que **Arrastre y Suelte** algo que escribirá tus datos controlados como en [**este ejemplo**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/). ### Carga Útil Básica ```markup
Click me
``` ### Payload Multistep ```markup
Click me first
Click me next
``` ### Carga útil de Arrastrar y Soltar + Clic ```markup
.
1. Click and press delete button
3.Click me

2.DRAG ME TO THE RED BOX

``` ### XSS + Clickjacking Si has identificado un **ataque XSS que requiere que un usuario haga clic** en algún elemento para **activar** el XSS y la página es **vulnerable al clickjacking**, podrías abusar de esto para engañar al usuario y hacer que haga clic en el botón/enlace.\ Ejemplo:\ _Encontraste un **self XSS** en algunos detalles privados de la cuenta (detalles que **solo tú puedes establecer y leer**). La página con el **formulario** para establecer estos detalles es **vulnerable** al **Clickjacking** y puedes **prellenar** el **formulario** con los parámetros GET._\ \_\_Un atacante podría preparar un ataque de **Clickjacking** a esa página **prellenando** el **formulario** con el **payload de XSS** y **engañando** al **usuario** para que **envíe** el formulario. Entonces, **cuando se envía el formulario** y se modifican los valores, el **usuario ejecutará el XSS**. ## Cómo evitar el Clickjacking ### Defensas del lado del cliente Es posible ejecutar scripts del lado del cliente que realicen algunos o todos los siguientes comportamientos para prevenir el Clickjacking: * verificar y asegurar que la ventana de la aplicación actual sea la ventana principal o superior, * hacer todos los marcos visibles, * prevenir clics en marcos invisibles, * interceptar y marcar posibles ataques de clickjacking en un usuario. #### Evasión Como los rompedores de marcos son JavaScript, entonces la configuración de seguridad del navegador puede prevenir su operación o incluso el navegador podría no soportar JavaScript. Una solución efectiva del atacante contra los rompedores de marcos es usar el atributo `sandbox` de iframe de **HTML5**. Cuando se establece con los valores `allow-forms` o `allow-scripts` y se omite el valor `allow-top-navigation`, entonces el script rompedor de marcos puede ser neutralizado ya que el iframe no puede verificar si es o no la ventana superior: ```markup ``` Los valores `allow-forms` y `allow-scripts` permiten las acciones especificadas dentro del iframe, pero la navegación de nivel superior está deshabilitada. Esto inhibe comportamientos de evasión de marcos mientras permite la funcionalidad dentro del sitio objetivo. Dependiendo del tipo de ataque de Clickjacking realizado **también puede ser necesario permitir**: `allow-same-origin` y `allow-modals` o [incluso más](https://www.w3schools.com/tags/att_iframe_sandbox.asp). Al preparar el ataque, solo verifica la consola del navegador, puede decirte qué otros comportamientos necesitas permitir. ### X-Frame-Options El **encabezado de respuesta HTTP `X-Frame-Options`** se puede usar para indicar si un navegador debe **permitirse** renderizar una página en un `` o `