* ¿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**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Usa [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir y **automatizar flujos de trabajo** con las herramientas comunitarias más avanzadas del mundo.\
El Clickjacking es un ataque que **engaña** a un **usuario** para que **haga clic** en un **elemento** de una página web que está **invisible** o 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/)).
A veces es posible **rellenar el valor de los campos de un formulario utilizando 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 de clickjacking para que el usuario presione el botón Enviar.
Si necesitas que el usuario **llene 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), simplemente puedes 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/).
Clickjacking can be made more effective by using a multistep payload. In this technique, the attacker tricks the victim into performing a series of actions, each of which contributes to the success of the attack.
The multistep payload can be implemented using various methods. One common approach is to divide the payload into multiple steps and spread them across different web pages. The attacker first lures the victim to a page that contains the initial step of the payload. This step may involve clicking on a button, entering some information, or performing any other action.
Once the victim completes the first step, they are redirected to another page that contains the second step of the payload. This process continues until all the steps are completed. Each step may appear harmless or unrelated to the overall attack, making it difficult for the victim to realize they are being manipulated.
By dividing the payload into multiple steps, the attacker can bypass certain security measures that may be in place. For example, if a website has implemented protection against clickjacking by using frame-busting techniques, the multistep payload can help bypass this protection. Since each step is performed on a different page, the frame-busting code will not be triggered.
To defend against multistep payloads, it is important to educate users about the risks of clickjacking and the importance of being cautious while interacting with unfamiliar websites. Additionally, web developers should implement proper security measures to prevent clickjacking attacks, such as using X-Frame-Options headers or Content Security Policy (CSP) directives.
Clickjacking can be combined with drag and drop functionality to create a more sophisticated attack. In this technique, the attacker tricks the user into dragging and dropping an object onto a hidden button or link, which triggers a malicious action.
El clickjacking se puede combinar con la funcionalidad de arrastrar y soltar para crear un ataque más sofisticado. En esta técnica, el atacante engaña al usuario para que arrastre y suelte un objeto sobre un botón o enlace oculto, lo cual desencadena una acción maliciosa.
To perform this attack, the attacker first creates a transparent layer on top of the target website. This layer contains a hidden button or link that is positioned exactly where the user is expected to drag and drop an object.
Para llevar a cabo este ataque, el atacante primero crea una capa transparente sobre el sitio web objetivo. Esta capa contiene un botón o enlace oculto que se posiciona exactamente donde se espera que el usuario arrastre y suelte un objeto.
When the user interacts with the website and attempts to drag and drop an object, they unknowingly trigger the hidden button or link underneath. This can lead to unintended actions, such as submitting a form, making a purchase, or performing any other action that the attacker desires.
Cuando el usuario interactúa con el sitio web e intenta arrastrar y soltar un objeto, sin saberlo, activa el botón o enlace oculto que se encuentra debajo. Esto puede llevar a acciones no deseadas, como enviar un formulario, realizar una compra o realizar cualquier otra acción que el atacante desee.
To protect against drag and drop + click payloads, website owners should implement frame-busting techniques and ensure that their websites cannot be embedded within iframes on other domains.
Para protegerse contra las cargas de arrastrar y soltar + clic, los propietarios de sitios web deben implementar técnicas de rompimiento de marcos y asegurarse de que sus sitios web no puedan ser incrustados en iframes en otros dominios.
Si has identificado un ataque **XSS que requiere que el usuario haga clic** en algún elemento para **activar** el XSS y la página es **vulnerable a clickjacking**, podrías abusar de ello para engañar al usuario y hacer que haga clic en el botón/enlace.\
_Has encontrado un **self XSS** en algunos detalles privados de la cuenta (detalles que **solo tú puedes configurar y leer**). La página con el **formulario** para configurar estos detalles es **vulnerable** a **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 la **carga útil XSS** y **engañando** al **usuario** para que **envíe** el formulario. Así, **cuando se envíe el formulario** y se modifiquen los valores, el **usuario ejecutará el XSS**.
Como los bloqueadores de marcos son JavaScript, la configuración de seguridad del navegador puede evitar su funcionamiento o incluso el navegador podría no admitir JavaScript. Una forma efectiva de evitar los bloqueadores de marcos por parte de un atacante es utilizar el **atributo `sandbox` del iframe de HTML5**. Cuando se establece con los valores `allow-forms` o `allow-scripts` y se omite el valor `allow-top-navigation`, el script del bloqueador de marcos puede neutralizarse ya que el iframe no puede verificar si es o no la ventana superior.
Tanto los valores `allow-forms` como `allow-scripts` permiten las acciones especificadas dentro del iframe, pero la navegación de nivel superior está deshabilitada. Esto inhibe los comportamientos de rompimiento de marco al tiempo que 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, simplemente verifica la consola del navegador, ya que puede indicarte qué otros comportamientos debes permitir.
El encabezado de respuesta HTTP **`X-Frame-Options`** se puede utilizar para indicar si un navegador debe **permitir** o no que se represente una página en un `<frame>` o `<iframe>`. Los sitios pueden utilizar esto para evitar ataques de Clickjacking, asegurándose de que **su contenido no se incruste en otros sitios**. Establece el encabezado **`X-Frame-Options`** para todas las respuestas que contengan contenido HTML. Los valores posibles son:
La protección de Clickjacking **recomendada** es incorporar la directiva **`frame-ancestors`** en la Política de Seguridad de Contenido de la aplicación.\
La directiva **`frame-ancestors 'none'`** es similar en comportamiento a la directiva **X-Frame-Options `deny`** (_Nadie puede enmarcar la página_).\
La directiva **`frame-ancestors 'self'`** es ampliamente equivalente a la directiva **X-Frame-Options `sameorigin`** (_solo el sitio actual puede enmarcarlo_).\
La directiva **`frame-ancestors trusted.com`** es ampliamente equivalente a la directiva **X-Frame-Options**`allow-from` (_solo el sitio de confianza puede enmarcarlo_).
* **Compatibilidad del navegador:** CSP frame-ancestors aún no es compatible con todos los principales navegadores.
* **X-Frame-Options tiene prioridad:** La sección "Relación con X-Frame-Options" de la especificación CSP dice: "_Si un recurso se entrega con una política que incluye una directiva llamada frame-ancestors y cuya disposición es 'enforce', entonces el encabezado X-Frame-Options DEBE ser ignorado_", pero Chrome 40 y Firefox 35 ignoran la directiva frame-ancestors y siguen el encabezado X-Frame-Options en su lugar.
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 del mundo.\
* ¿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**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).