mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/clickjacking.md'] to fr
This commit is contained in:
parent
723c46d845
commit
c6d2238788
@ -4,18 +4,18 @@
|
||||
|
||||
## Qu'est-ce que le Clickjacking
|
||||
|
||||
Dans une attaque de clickjacking, un **utilisateur** est **trompé** en **cliquant** sur un **élément** d'une page web qui est soit **invisible**, soit déguisé en un autre élément. Cette manipulation peut entraîner des conséquences inattendues pour l'utilisateur, telles que le téléchargement de logiciels malveillants, la redirection vers des pages web malveillantes, la fourniture de données d'identification ou d'informations sensibles, des transferts d'argent, ou l'achat en ligne de produits.
|
||||
Dans une attaque de clickjacking, un **utilisateur** est **trompé** en **cliquant** sur un **élément** d'une page web qui est soit **invisible**, soit déguisé en un autre élément. Cette manipulation peut entraîner des conséquences inattendues pour l'utilisateur, telles que le téléchargement de logiciels malveillants, la redirection vers des pages web malveillantes, la fourniture de données d'identification ou d'informations sensibles, des transferts d'argent ou l'achat en ligne de produits.
|
||||
|
||||
### Astuce de préremplissage de formulaires
|
||||
|
||||
Il est parfois possible de **remplir la valeur des champs d'un formulaire en utilisant des paramètres GET lors du chargement d'une page**. Un attaquant peut abuser de ce comportement pour remplir un formulaire avec des données arbitraires et envoyer la charge utile de clickjacking afin que l'utilisateur appuie sur le bouton Soumettre.
|
||||
Parfois, il est possible de **remplir la valeur des champs d'un formulaire en utilisant des paramètres GET lors du chargement d'une page**. Un attaquant peut abuser de ce comportement pour remplir un formulaire avec des données arbitraires et envoyer la charge utile de clickjacking afin que l'utilisateur appuie sur le bouton Soumettre.
|
||||
|
||||
### Remplir un formulaire avec Drag\&Drop
|
||||
### Remplir le formulaire avec Drag\&Drop
|
||||
|
||||
Si vous avez besoin que l'utilisateur **remplisse un formulaire** mais que vous ne voulez pas lui demander directement d'écrire des informations spécifiques (comme l'email ou un mot de passe spécifique que vous connaissez), vous pouvez simplement lui demander de **Drag\&Drop** quelque chose qui écrira vos données contrôlées comme dans [**cet exemple**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
|
||||
|
||||
### Charge utile de base
|
||||
```markup
|
||||
```css
|
||||
<style>
|
||||
iframe {
|
||||
position:relative;
|
||||
@ -35,7 +35,7 @@ z-index: 1;
|
||||
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>
|
||||
```
|
||||
### Charge utile en plusieurs étapes
|
||||
```markup
|
||||
```css
|
||||
<style>
|
||||
iframe {
|
||||
position:relative;
|
||||
@ -59,7 +59,7 @@ left:210px;
|
||||
<iframe src="https://vulnerable.net/account"></iframe>
|
||||
```
|
||||
### Drag\&Drop + Click payload
|
||||
```markup
|
||||
```css
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
@ -92,7 +92,16 @@ background: #F00;
|
||||
Si vous avez identifié une **attaque XSS qui nécessite qu'un utilisateur clique** sur un élément pour **déclencher** le XSS et que la page est **vulnérable au clickjacking**, vous pourriez en abuser pour tromper l'utilisateur en lui faisant cliquer sur le bouton/lien.\
|
||||
Exemple :\
|
||||
Vous avez trouvé un **self XSS** dans certains détails privés du compte (détails que **vous seul pouvez définir et lire**). La page avec le **formulaire** pour définir ces détails est **vulnérable** au **Clickjacking** et vous pouvez **préremplir** le **formulaire** avec les paramètres GET.\
|
||||
Un attaquant pourrait préparer une **attaque Clickjacking** sur cette page en **préremplissant** le **formulaire** avec la **charge utile XSS** et en **trompant** l'**utilisateur** pour qu'il **soumette** le formulaire. Ainsi, **lorsque le formulaire est soumis** et que les valeurs sont modifiées, l'**utilisateur exécutera le XSS**.
|
||||
Un attaquant pourrait préparer une attaque de **Clickjacking** sur cette page en **préremplissant** le **formulaire** avec la **charge utile XSS** et en **trompant** l'**utilisateur** pour qu'il **soumette** le formulaire. Ainsi, **lorsque le formulaire est soumis** et que les valeurs sont modifiées, l'**utilisateur exécutera le XSS**.
|
||||
|
||||
### DoubleClickjacking
|
||||
|
||||
D'abord [expliqué dans ce post](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html), cette technique demanderait à la victime de double cliquer sur un bouton d'une page personnalisée placée à un endroit spécifique, et d'utiliser les différences de timing entre les événements mousedown et onclick pour charger la page de la victime pendant le double clic afin que la **victime clique réellement sur un bouton légitime dans la page de la victime**.
|
||||
|
||||
Un exemple peut être vu dans cette vidéo : [https://www.youtube.com/watch?v=4rGvRRMrD18](https://www.youtube.com/watch?v=4rGvRRMrD18)
|
||||
|
||||
> [!WARNING]
|
||||
> Cette technique permet de tromper l'utilisateur pour qu'il clique sur 1 endroit dans la page de la victime en contournant toutes les protections contre le clickjacking. Ainsi, l'attaquant doit trouver des **actions sensibles qui peuvent être effectuées avec juste 1 clic, comme les invites OAuth acceptant des permissions**.
|
||||
|
||||
## Stratégies pour atténuer le Clickjacking
|
||||
|
||||
@ -102,7 +111,7 @@ Les scripts exécutés côté client peuvent effectuer des actions pour préveni
|
||||
|
||||
- S'assurer que la fenêtre de l'application est la fenêtre principale ou supérieure.
|
||||
- Rendre tous les cadres visibles.
|
||||
- Empêcher les clics sur les cadres invisibles.
|
||||
- Empêcher les clics sur des cadres invisibles.
|
||||
- Détecter et alerter les utilisateurs sur les tentatives potentielles de Clickjacking.
|
||||
|
||||
Cependant, ces scripts de contournement de cadre peuvent être contournés :
|
||||
@ -115,13 +124,13 @@ id="victim_website"
|
||||
src="https://victim-website.com"
|
||||
sandbox="allow-forms allow-scripts"></iframe>
|
||||
```
|
||||
Les valeurs `allow-forms` et `allow-scripts` permettent des actions au sein de l'iframe tout en désactivant la navigation de niveau supérieur. Pour garantir la fonctionnalité prévue du site ciblé, des autorisations supplémentaires comme `allow-same-origin` et `allow-modals` peuvent être nécessaires, selon le type d'attaque. Les messages de la console du navigateur peuvent guider sur les autorisations à accorder.
|
||||
Les valeurs `allow-forms` et `allow-scripts` permettent des actions au sein de l'iframe tout en désactivant la navigation de niveau supérieur. Pour garantir la fonctionnalité prévue du site ciblé, des autorisations supplémentaires comme `allow-same-origin` et `allow-modals` peuvent être nécessaires, selon le type d'attaque. Les messages de la console du navigateur peuvent guider les autorisations à accorder.
|
||||
|
||||
### Défenses côté serveur
|
||||
|
||||
#### X-Frame-Options
|
||||
|
||||
L'**en-tête de réponse HTTP `X-Frame-Options`** informe les navigateurs sur la légitimité de rendre une page dans un `<frame>` ou `<iframe>`, aidant à prévenir le Clickjacking :
|
||||
L'en-tête de réponse HTTP **`X-Frame-Options`** informe les navigateurs sur la légitimité de rendre une page dans un `<frame>` ou `<iframe>`, aidant à prévenir le Clickjacking :
|
||||
|
||||
- `X-Frame-Options: deny` - Aucun domaine ne peut encadrer le contenu.
|
||||
- `X-Frame-Options: sameorigin` - Seul le site actuel peut encadrer le contenu.
|
||||
@ -130,7 +139,7 @@ L'**en-tête de réponse HTTP `X-Frame-Options`** informe les navigateurs sur la
|
||||
|
||||
#### Directive frame-ancestors de la politique de sécurité du contenu (CSP)
|
||||
|
||||
La **directive `frame-ancestors` dans CSP** est la méthode conseillée pour la protection contre le Clickjacking :
|
||||
La directive **`frame-ancestors` dans CSP** est la méthode conseillée pour la protection contre le Clickjacking :
|
||||
|
||||
- `frame-ancestors 'none'` - Semblable à `X-Frame-Options: deny`.
|
||||
- `frame-ancestors 'self'` - Semblable à `X-Frame-Options: sameorigin`.
|
||||
@ -144,7 +153,7 @@ Des détails supplémentaires et des exemples complexes peuvent être trouvés d
|
||||
|
||||
### Politique de sécurité du contenu (CSP) avec `child-src` et `frame-src`
|
||||
|
||||
La **politique de sécurité du contenu (CSP)** est une mesure de sécurité qui aide à prévenir le Clickjacking et d'autres attaques par injection de code en spécifiant quelles sources le navigateur doit autoriser à charger du contenu.
|
||||
La **Politique de sécurité du contenu (CSP)** est une mesure de sécurité qui aide à prévenir le Clickjacking et d'autres attaques par injection de code en spécifiant quelles sources le navigateur doit autoriser à charger du contenu.
|
||||
|
||||
#### Directive `frame-src`
|
||||
|
||||
@ -155,9 +164,9 @@ Content-Security-Policy: frame-src 'self' https://trusted-website.com;
|
||||
```
|
||||
Cette politique permet des cadres de la même origine (soi) et https://trusted-website.com.
|
||||
|
||||
#### `child-src` Directive
|
||||
#### Directive `child-src`
|
||||
|
||||
- Introduit dans le niveau 2 de CSP pour définir des sources valides pour les travailleurs web et les cadres.
|
||||
- Introduite dans le niveau 2 de CSP pour définir des sources valides pour les travailleurs web et les cadres.
|
||||
- Agit comme une solution de secours pour frame-src et worker-src.
|
||||
```
|
||||
Content-Security-Policy: child-src 'self' https://trusted-website.com;
|
||||
|
Loading…
x
Reference in New Issue
Block a user