👽Broken authentication / register
Connexion avec Google
étapes:
Aller dans connexion avec google
Remplir les informations
Intercepter la requête avec Burp Suite
Decoder la signature qui est en base64
Changer l'email et réencoder la nouvelle signature
Se connecter avec la nouvelle signature
Si cette technique fonctionne vous devriez être connecté avec une fausse adresse mail
Longue chaîne de caractères pour bypass la vérification
Interface d'administration lorsqu'on se connecte avec email interne
Enregistrez vous avec un email très long.
Exemple:
very-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-stringvery-long-string@mail.com
Dans "mon compte", regardez si l'email a été coupé à un point.
Si c'est le cas, modifiez votre email pour qu'il soit coupé exactement à la fin du préfix de l'email cible.
Pour que cela fonctionne, le site doit ne pas faire de vérification au changement d'email ce qui est rare.
Remplacement d'utilisateur existant
Le remplacement d'utilisateur existant se produit lorsqu'une application nous permet de nous inscrire avec la même adresse e-mail, nom d'utilisateur ou numéro de téléphone plusieurs fois. Cela peut avoir des conséquences critiques en fonction du type d'attaque effectuée.
étapes:
Créez un premier compte dans l'application avec un e-mail et un mot de passe.
Déconnectez-vous du compte et créez un autre compte avec le même e-mail et un mot de passe différent.
Vous pouvez même essayer des variantes de l'e-mails dans certains cas, exemple: target@gmail.com en TarGet@gmail.com.
Si vous arrivez à vous connecter avec le nouveau mot de passe alors la cible est vulnérable.
XSS
Charge utile pour le champ Nom d'utilisateur :
<img src=x onerror=alert(1)>
Charge utile pour le champ E-mail:
"><svg/onload=confirm(1)>" @gmail.com
Rate limit
S'il n'y a pas de limitation de débit sur la page d'inscription, des utilisateurs malveillants peuvent générer des centaines et des milliers de faux comptes qui conduisent à remplir la base de données de l'application avec de faux comptes, ce qui peut avoir un impact sur l'entreprise de plusieurs façons.
Vous pouvez facilement le tester avec Burp Intruder.
Capturez la demande d'inscription et envoyez-la dans l'Intruder.
Ajoutez différents e-mails en tant que charge utile.
Lancez l'Intruder et vérifiez s'il renvoie 200 OK.
JSON bruteforce
Si la requête de connexion est en json, il est possible de tenter de bruteforce le mot de passe d'un utilisateur comme ceci:
exemple de requête:
attaque par dictionnaire:
En créant un tableau json contenant les mots de passe à tester on va faire en sorte que chacun d'entre eux soient traités par le serveur en une seule requête ce qui va nous permettre de contourner une éventuelle limite de requête de connexion.
JSON object injection
Authentification basic HTTP
Bien qu'assez ancienne, sa simplicité relative et sa facilité de mise en œuvre signifient que vous pouvez parfois voir l'authentification de base HTTP utilisée. Dans l'authentification de base HTTP, le client reçoit un jeton d'authentification du serveur, qui est construit en concaténant le nom d'utilisateur et le mot de passe, et en le codant en Base64. Ce jeton est stocké et géré par le navigateur, qui l'ajoute automatiquement à l' en-tête Authorization
de chaque requête suivante comme suit :
Pour un certain nombre de raisons, cela n'est généralement pas considéré comme une méthode d'authentification sécurisée. Premièrement, cela implique d'envoyer à plusieurs reprises les identifiants de connexion de l'utilisateur à chaque demande. À moins que le site Web n'implémente également HSTS, les informations d'identification des utilisateurs sont susceptibles d'être capturées lors d'une attaque de type "man-in-the-middle".
De plus, les implémentations de l'authentification de base HTTP ne prennent souvent pas en charge la protection contre la force brute. Comme le jeton se compose exclusivement de valeurs statiques, cela peut le rendre vulnérable à la force brute.
L'authentification de base HTTP est également particulièrement vulnérable aux exploits liés à la session, notamment CSRF , contre lesquels elle n'offre aucune protection par elle-même.
Dans certains cas, l'exploitation d'une authentification de base HTTP vulnérable ne peut accorder à un attaquant qu'un accès à une page apparemment inintéressante. Cependant, en plus de fournir une surface d'attaque supplémentaire, les informations d'identification ainsi exposées peuvent être réutilisées dans d'autres contextes plus confidentiels.
Utiliser le lien de vérification comme lien de réinitialisation de mot de passe
Si le site utilise la même méthode pour générer des tokens de vérification de mot de passe et de réinitialisation de mot de passe il est possible d'utiliser un token de vérification pour prendre le contrôle d'un compte et inversement.
Exemple d'un rapport:
Account takeover via lien de confirmation
Créer deux utilisateurs (attacker@mail.xyz et victim@mail.xyz)
Remplacer l'email de attacker@mail.xyz par attacker2@mail.xyz
Un email de confirmation est envoyé à attacker2@mail.xyz
Ouvrir le lien avec le navigateur de la victime
Vérifier si l'email de la victime a été remplacé par attacker2@mail.xyz
Mindmap
Dernière mise à jour