# Clickjacking
Aprenda hacking AWS do zero ao herói comhtARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as ferramentas comunitárias mais avançadas do mundo.\
Acesse hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## O que é Clickjacking
Em um ataque de clickjacking, um **usuário** é **enganado** para **clicar** em um **elemento** em uma página da web que está **invisível** ou disfarçado como um elemento diferente. Essa manipulação pode levar a consequências indesejadas para o usuário, como o download de malware, redirecionamento para páginas da web maliciosas, fornecimento de credenciais ou informações sensíveis, transferências de dinheiro ou a compra online de produtos.
### Truque de pré-preenchimento de formulários
Às vezes é possível **preencher o valor dos campos de um formulário usando parâmetros GET ao carregar uma página**. Um atacante pode abusar desse comportamento para preencher um formulário com dados arbitrários e enviar a carga de clickjacking para que o usuário pressione o botão Enviar.
### Preencher formulário com Arrastar e Soltar
Se você precisa que o usuário **preencha um formulário** mas não quer pedir diretamente a ele para escrever informações específicas (como o e-mail e/ou senha específica que você conhece), você pode simplesmente pedir a ele para **Arrastar e Soltar** algo que escreverá seus dados controlados como neste [**exemplo**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
### Payload Básico
```markup
Click me
```
### Carga Única
```markup
Click me first
Click me next
```
### Arrastar e Soltar + Clique payload
```markup
.
1. Click and press delete button
3.Click me
2.DRAG ME TO THE RED BOX
```
### XSS + Clickjacking
Se você identificou um ataque de **XSS que requer que um usuário clique** em algum elemento para **acionar** o XSS e a página é **vulnerável ao clickjacking**, você pode abusar disso para enganar o usuário a clicar no botão/link.
Exemplo:
_Você encontrou um **self XSS** em alguns detalhes privados da conta (detalhes que **apenas você pode configurar e ler**). A página com o **formulário** para configurar esses detalhes é **vulnerável** ao **Clickjacking** e você pode **pré-preencher** o **formulário** com os parâmetros GET._
__Um atacante poderia preparar um ataque de **Clickjacking** para essa página **pré-preenchendo** o **formulário** com o **payload XSS** e **enganando** o **usuário** a **enviar** o formulário. Assim, **quando o formulário for enviado** e os valores forem modificados, o **usuário executará o XSS**.
## Estratégias para Mitigar o Clickjacking
### Defesas do Lado do Cliente
Scripts executados no lado do cliente podem realizar ações para prevenir o Clickjacking:
* Garantir que a janela da aplicação seja a janela principal ou superior.
* Tornar todos os frames visíveis.
* Impedir cliques em frames invisíveis.
* Detectar e alertar os usuários sobre possíveis tentativas de Clickjacking.
No entanto, esses scripts de quebra de frames podem ser contornados:
* **Configurações de Segurança dos Navegadores:** Alguns navegadores podem bloquear esses scripts com base em suas configurações de segurança ou falta de suporte ao JavaScript.
* **Atributo `sandbox` do iframe HTML5:** Um atacante pode neutralizar scripts de quebra de frames definindo o atributo `sandbox` com os valores `allow-forms` ou `allow-scripts` sem `allow-top-navigation`. Isso impede que o iframe verifique se é a janela superior, por exemplo,
```html
```
Os valores `allow-forms` e `allow-scripts` permitem ações dentro do iframe enquanto desabilitam a navegação de nível superior. Para garantir a funcionalidade pretendida do site alvo, permissões adicionais como `allow-same-origin` e `allow-modals` podem ser necessárias, dependendo do tipo de ataque. Mensagens no console do navegador podem orientar sobre quais permissões permitir.
### Defesas do Lado do Servidor
#### X-Frame-Options
O cabeçalho de resposta HTTP **`X-Frame-Options` informa aos navegadores sobre a legitimidade de renderizar uma página em um `` ou `