# Clickjacking
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* 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)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
![](<../.gitbook/assets/image (9) (1) (2).png>)
\
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
Obtenha acesso hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## O que é Clickjacking
Clickjacking é um ataque que **enganar** um **usuário** para **clicar** em um **elemento** da página da web que é **invisível** ou disfarçado como outro elemento. Isso pode fazer com que os usuários baixem malware sem saber, visitem páginas da web maliciosas, forneçam credenciais ou informações confidenciais, transfiram dinheiro ou comprem produtos online. (De [aqui](https://www.imperva.com/learn/application-security/clickjacking/)).
### Truque de preencher 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 que ele escreva algumas informações específicas (como o e-mail e/ou senha específica que você conhece), você pode simplesmente pedir que ele **arraste e solte** algo que escreverá seus dados controlados como em [**este exemplo**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
### Payload básico
```markup
Click me
```
### Payload Multistep
O ataque de clickjacking multistep é uma variação do ataque de clickjacking padrão, onde o atacante usa vários cliques em diferentes elementos da página para realizar a ação maliciosa. Isso é feito para evitar a detecção de ferramentas de segurança que procuram por cliques em um único elemento.
O ataque multistep é realizado em várias etapas, onde cada etapa é um clique em um elemento diferente da página. Cada clique é inofensivo por si só, mas quando combinados, eles realizam a ação maliciosa desejada pelo atacante.
Por exemplo, um atacante pode criar um botão invisível em uma página da web que, quando clicado, redireciona o usuário para uma página maliciosa. Para evitar a detecção, o atacante pode dividir o clique em dois ou mais cliques em diferentes elementos da página. O primeiro clique pode ser em um botão inofensivo, enquanto o segundo clique pode ser no botão invisível que redireciona o usuário para a página maliciosa.
Os ataques multistep podem ser mais difíceis de detectar e prevenir do que os ataques de clickjacking padrão, pois envolvem vários cliques em diferentes elementos da página. No entanto, as mesmas técnicas de prevenção de clickjacking padrão podem ser usadas para prevenir ataques multistep.
```markup
Click me first
Click me next
```
### Payload de Arrastar e Soltar + Clique
```markup
.
1. Click and press delete button
3.Click me
2.DRAG ME TO THE RED BOX
```
### XSS + Clickjacking
Se você identificou um ataque **XSS que requer que o usuário clique** em algum elemento para **disparar** o XSS e a página é **vulnerável a 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 definir e ler**). A página com o **formulário** para definir esses detalhes é **vulnerável** a **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 a **carga XSS** e **enganando** o **usuário** a **enviar** o formulário. Então, **quando o formulário é enviado** e os valores são modificados, o **usuário executará o XSS**.
## Como evitar o Clickjacking
### Defesas do lado do cliente
É possível executar scripts no lado do cliente que realizam alguns ou todos os seguintes comportamentos para evitar o Clickjacking:
* verificar e impor que a janela de aplicativo atual é a janela principal ou superior,
* tornar todos os quadros visíveis,
* impedir o clique em quadros invisíveis,
* interceptar e sinalizar possíveis ataques de clickjacking em um usuário.
#### Bypass
Como os frame busters são JavaScript, as configurações de segurança do navegador podem impedir sua operação ou, de fato, o navegador pode nem mesmo suportar JavaScript. Uma solução eficaz para o atacante contornar os frame busters é usar o **atributo HTML5 iframe `sandbox`**. Quando isso é definido com os valores `allow-forms` ou `allow-scripts` e o valor `allow-top-navigation` é omitido, o script do frame buster pode ser neutralizado, pois o iframe não pode verificar se é ou não a janela superior:
```markup
```
Tanto os valores `allow-forms` quanto `allow-scripts` permitem as ações especificadas dentro do iframe, mas a navegação de nível superior é desativada. Isso inibe comportamentos de quebra de quadro enquanto permite a funcionalidade dentro do site direcionado.
Dependendo do tipo de ataque de Clickjacking realizado, **você também pode precisar permitir**: `allow-same-origin` e `allow-modals` ou [até mais](https://www.w3schools.com/tags/att\_iframe\_sandbox.asp). Ao preparar o ataque, verifique o console do navegador, ele pode informar quais outros comportamentos você precisa permitir.
### X-Frame-Options
O **cabeçalho de resposta HTTP `X-Frame-Options`** pode ser usado para indicar se um navegador deve ou não ser **permitido** a renderizar uma página em um `` ou `