๐ญBusiness logic
Les vulnรฉrabilitรฉs de logique business sont trรจs diverses et variรฉes รฉtant donnรฉ qu'elle dรฉpendent de chaque cible et de chaque secteur professionnel.
Les exemples ci-dessous font partie d'un infime รฉchantillon de ce qui peut รชtre retrouvรฉ.
Account takeover
Cas 1: Session active aprรจs suppression du compte
Connexion en tant qu'attaquant avec un compte random.
Demande de suppression du compte au staff.
Rafraichir la page.
Si toujours connectรฉ aprรจs rafraichissement:
Aller dans le profil pour vรฉrifier qu'il est bien supprimรฉ.
Crรฉer un deuxiรจme compte avec un autre nom d'utilisateur.
Changer son username en celui qui a รฉtรฉ supprimรฉ.
Rafraichir la page du navigateur attaquant.
Retourner dans le profil.
Si le profil correspond maintenant au deuxiรจme compte alors la manipulation a fonctionnรฉ.
Cas 2: Absence de suppression dรฉfinitive du compte
Crรฉer un compte
Faire des modifications
Supprimer le compte
Recrรฉer un compte avec les mรชmes informations
Si on retrouve les donnรฉes enregistrรฉs sur le compte supprimรฉ alors la manipulation a fonctionnรฉ.
Cas 3: Majuscules et minuscules
Crรฉer un compte (exp: RandomAccount)
Faire des modifications
Crรฉer un deuxรจme compte avec les mรชme lettres mais dans lequel les minuscules et majuscules sont placรฉes diffรฉremment (exp: rAndOmAccOnT)
Si le deuxiรจme compte contient les modifications du premier alors la manipulation a fonctionnรฉ.
Cas 4: Normalisation unicode
Crรฉer un compte: victim@mail.xyz
Crรฉer un deuxiรจme compte avec un caractรจre unicode normalisant le mail en le premier crรฉรฉ
Exemple: viฤtim@mail.xyz
Cas 5: Lien d'invitation non vรฉrifiรฉ
Si une fonction d'invitation existe, intercepter la requรชte d'invitation et si le lien est leakรฉ dans la rรฉponse, essayer de la suivre afin de potentiellement accepter l'invitation au nom de l'utilisateur invitรฉ.
Cas 6: Reset link n'expire pas aprรจs modification de l'email
รtapes ร suivre:
Gรฉnรฉrer un lien de reset de mot de passe.
Se connecter.
Changer d'email.
Se dรฉconnecter.
Suivre le lien de reset de mot de passe.
Si il est possible de changer de mot de passe depuis l'ancien email, il y a un risque d'account takeover.
Cas 7: Email verification bypass
Changer d'email vers un email contrรดlรฉ par l'attaquant (attacker@mail.xyz)
Ne pas cliquer sur l'email de vรฉrification.
Changer l'email vers un email victime (victim@mail.xyz)
Cliquer sur le lien prรฉcรฉdemment reรงu sur l'email attaquant.
Si l'email de la victime est validรฉe ร la place de l'email attaquant il y a alors un risque d'account takeover.
Mauvaise gestion des sessions
Cas 1: Session active aprรจs renommage du compte
Se connecter avec un compte
Se renommer
Rafraichir la page
Si l'ancien nom d'utilisateur est encore actif:
Crรฉer un nouveau compte avec l'ancien nom d'utilisateur
Si il y a maintenant deux sessions actives sur le mรชme nom d'utilisateur, alors la manipulation a fonctionnรฉ.
Bypass de politique de mot de passe
Cas 1: Changment de mot de passe
Essayer de crรฉer un mot de passe faible (bloquรฉ par politique de mot de passe)
Crรฉer un mot de passe en respect avec la politique de mot de passe.
Sur le compte, vรฉrifier si la fonction de changement de mot de passe possรฉde la mรชme restriction.
E-commerce
๐Fonctions d'achat et de facturationConfiance excessive dans les contrรดles cรดtรฉ client
Arrive lorsqu'une restriction cรดtรฉ client n'est pas mise en place cรดtรฉ serveur.
Incapacitรฉ ร traiter les entrรฉes non attendues
Arrive lorsqu'une entrรฉe utilisateur n'est pas celle qui est attendu par le serveur:
String > Integer
Integer > String
JSON >
JSONXXXX > 9999999999999999999999999999
...
Bruteforce de mot de passe via fonction de password reset
Si la fonction de changement de mot de passe prend un paramรจtre username, email ou id, vรฉrifier le rate limit sur la requรชte pour vรฉrifier si il y a possibilitรฉ de bruteforce le mot de passe d'un autre utilisateur.
Sinon, crรฉer un deuxiรจme compte et essayer de changer le mot de passe de ce compte avec sur la session du premier.
Cryptographic flaw example
Rechercher les emplacement oรน du chiffrement (et non pas du hashage) est utilisรฉ dans l'application.
Dรฉterminer les emplacement ou l'application chiffre ou dรฉchiffre des valeurs entrรฉes par l'utilisateur.
Essayer de provoquer une erreur dans l'application qui rรฉvรฉle la valeur dรฉchiffrรฉ ou l'emplacement dans lequelle on pourrait retrouver cette valeur.
Tenter de d'afficher via cette possibilitรฉ en texte clair des secrets chiffrรฉs tels que des cookies de session, mot de passe ou encore un numรฉro de carte de crรฉdit.
Inversement, tenter d'injecter des payload en texte clair aux emplacements ou le chiffrement est effectuรฉ.
Race condition on login form lead to information disclosure
Essayer de connecter deux utilisateurs exactement au mรชme moment et vรฉrifier si ces deux utilisateurs ont momentanรฉment accรจs aux donnรฉes le l'autre.
๐ชRace conditionsRessources
Derniรจre mise ร jour
Cet article vous a-t-il รฉtรฉ utile ?