🛒Fonctions d'achat et de facturation
Les fonctions d'achat et de facturation sont généralement présentes dans la plupart des applications Web. Le test de ces fonctions peut être assez simple et peut en fait créer un impact commercial très important. Vous trouverez ci-dessous quelques moyens de tester et de trouver des bugs dans les fonctions d'achat d'une application Web.
Manipulation des paramètres
La falsification des paramètres est une vulnérabilité qui peut affecter n'importe quel site Web, mais la "manipulation des prix" est largement unique aux sites d'achat en ligne. Un site Web est vulnérable s'il se fie indûment à la validation côté client ou s'il ne parvient pas à valider l'entrée de l'utilisateur côté serveur.
Exemple: on a une url de ce type
https://target.com/cart?id=1&qty=2&price=29,99¤cy=EUR
Dans ce cas l'attaquant peut tenter de changer simplement la valeur du prix et/ou de la quantité. Si la validation des paramètres n'est pas bien faite alors il sera capable d'acheter 100 produits pour 29,99 euros ou 2 produits pour 1 euro par exemple.
Voici quelques scenarios d'attaque mettant en oeuvre cette méthode:
Changer le prix d'un produit cher en un produit bon marché.
Augmenter la quantité du produit au prix d'un seul.
Changer la devise (EUR en PKR).
Mettre le prix du produit en négatif si le pris final ne peut pas être négatif.
Si l'application utilise un hachage, essayez de capturer le hachage d'un produit bon marché et remplacez-le lors de l'achat d'un produit coûteux.
S'il y a un coût supplémentaire comme une taxe/quelque chose, changez-le en montant négatif qui pourrait réduire le prix total du produit.
Si vous avez 2 coupons de réduction et que la vérification n'est faite qu'une seule fois, alternez entre les deux coupon pour vérifier si vous ne pouvez pas utiliser plusieurs fois le même coupon.
CSRF
Une bonne méthodologie pour identifier les vulnérabilités CSRF serait de découvrir tous les points de terminaison à travers lesquels l'application initie et exécute des actions, et d'appliquer des tests en créant un formulaire html pour une demande post-basée ou une URL pour une demande basée sur un GET. Astuce : Vous pouvez utiliser le générateur BurpSuite CSRF POC pour votre facilité
Scénarios:
CSRF sur l'ajout de produit au panier
CSRF lors de la suppression d'un produit du panier
CSRF sur le changement d'adresse de la victime
CSRF lors de la suppression de la carte-cadeau/coupon appliqué
IDOR
Les références directes d'objet non sécurisées ou IDOR se produisent lorsqu'une application reçoit une entrée de l'utilisateur et l'utilise pour récupérer un objet interne tel qu'un fichier ou une clé de base de données sans effectuer une autorisation suffisante. Dans ces cas, l'attaquant peut alors modifier les références pour accéder à des données non autorisées.
Exemple: on a une url du type:
https://target.com/cart?userId=10
Le site cible peut être vulnérable si en changeant son userId de 10 à 15 par exemle l'attaquant peut accéder au panier du client ayant le userId 15.
Scénarios:
une IDOR permet à un attaquant d'afficher les informations de commande d'une autre personne.
une IDOR permet de supprimer des éléments du panier d'un autre utilisateur.
une IDOR permet d'afficher les données personnelles/sensibles d'un autre utilisateur (adresse, carte de crédit, etc).
Clickjacking
Le détournement de clic est une technique malveillante consistant à inciter un utilisateur à cliquer sur quelque chose de différent de ce que l'utilisateur perçoit - l'utilisateur croit qu'il interagit avec un site Web de confiance mais interagit en fait avec une ressource contrôlée par l'attaquant. En un mot, cela peut être décrit comme incitant un utilisateur à cliquer sur quelque chose de différent de ce que l'utilisateur perçoit, révélant potentiellement des informations confidentielles.
Pour tester si le site cible est vulnérable au clicjacking vous pouvez utiliser le site https://clickjacker.io/ ou clickbandit sur l'outil burp suite.
Scénarios:
Clickjacking lors de la mise à jour de la page nom/adresse, un attaquant peut inciter la victime à mettre à jour l'adresse de livraison à l'adresse de l'attaquant.
Clickjacking sur la page de paiement, un attaquant peut inciter l'utilisateur à acheter des articles à son insu.
Clickjacking sur l'ajout ou la suppression de produits, Un attaquant peut inciter la victime à ajouter ou supprimer des produits dans le panier.
Manipulation de réponse HTTP
La manipulation de la réponse signifie manipuler la réponse du serveur à notre navigateur. Dans de nombreux cas, cela peut être très utile pour les tests car cela peut entraîner des contournements tels que le contournement d'authentification, le contournement de paiement OTP et bien d'autres. Cela peut être facilement testé en examinant les réponses de l'application Web tout en effectuant une validation.
Exemples:
"paid":"false" paiement rejeté
"paid":"true" paiement accepté
403 Forbidden
200 OK
Cartes de test (Stripe)
Si le mode test de stripe n'a pas été désactivé par les développeurs, il est possible d'utiliser une fausse carte de crédit pour souscrire à un abonnement par exemple.
ressource: https://stripe.com/docs/testing
Carte expirée accepté (Réservations)
Certaines fonctions de paiement notamment celles liés à des réservation permettent parfois d'effectuer des réservations sans vérifier la date d'expiration de la carte utilisée.
Transmission en clair de données sensibles
Certaines applications transmettent des mots de passe et d'autres données sensibles sur des connexions non cryptées, ce qui les rend vulnérables à l'interception. Pour exploiter cette vulnérabilité, un attaquant doit être correctement positionné pour espionner le trafic réseau de la victime. Ce scénario se produit généralement lorsqu'un client communique avec le serveur via une connexion non sécurisée telle qu'un réseau Wi-Fi public ou un réseau d'entreprise ou domestique partagé avec un ordinateur compromis.
Vous pouvez utiliser wiershark ou un outil d'analyse de trafic similaire pour capturer le trafic réseau de l'ensemble de votre processus d'achat. Si vous voyez des données sensibles telles que les détails de votre carte de crédit ou votre adresse, elles sont transmises dans le protocole http non crypté et sont visibles en texte clair.
Il y a de fortes chances que vos données soient divulguées car les données seront enregistrées dans de nombreux endroits comme le serveur du FAI, les journaux du serveur d'application, tout service VPN tiers, etc.
Dernière mise à jour