๐Ÿ’ญ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รฉ.

Faire la mรชme chose si connexion avec email.

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รฉ.

ร‰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รฉ.

Afin de confirmer l'impact, essayer d'ajouter du contenu avec le nouveau compte et de rafraichir la page du premier pour voir si le contenu est visible par celui-ci.

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 facturation

Confiance 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 > JSON

  • XXXX > 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 conditions

Ressources

Derniรจre mise ร  jour

Cet article vous a-t-il รฉtรฉ utile ?