Développeur, souvenez-vous - le trafic de votre application est surveillé

WOG

À l'heure actuelle, il existe tellement de types de vulnérabilités que les développeurs oublient complètement les éléments élémentaires. L'autre jour, j'ai réussi à contourner l'autorisation dans la nouvelle application WOG (TOV "VOG RETAIL" - le deuxième plus grand réseau de stations-service en Ukraine). En 2017, j'ai trouvé exactement la même vulnérabilité dans l'application de l'un des fournisseurs de téléphonie mobile d'Ukraine (également le deuxième plus grand). Situations identiques - une nouvelle application et un manque de protection contre la force brute.

Il n'y a pas si longtemps, j'ai reçu une notification - la société a publié une nouvelle application et propose de l'installer. Honnêtement, j'ai aimé la fonctionnalité de l'application - voir les bonus dans le compte pour lequel vous pouvez acheter du carburant. La possibilité de joindre une carte bancaire et de payer les marchandises sans contact ou par code QR. Le profil affiche également mon nom et mes coordonnées, un historique complet des transactions - une liste des marchandises et leur valeur au moment de l'achat.

L'autorisation dans l'application est devenue plus facile - maintenant vous n'avez plus besoin de saisir le numéro de la carte de fidélité, il suffit de préciser le numéro de mobile. Cependant, même à l'entrée, je soupçonnais que n'importe qui pouvait voir mes données - j'ai spécialement, plus de 5 fois, entré un code différent de ce que j'ai reçu par SMS. Pourquoi? - Parce que plus tôt, dans une application similaire d'un opérateur mobile, j'ai trouvé une vulnérabilité qui donnait un accès complet à la gestion du compte d'un abonné.

En entrant le code incorrect, il a été possible de découvrir que la protection contre la force brute n'est probablement pas.

J'avais raison - l'application n'a aucune protection. Vous pouvez accéder à n'importe quel compte et, en outre, «détourner» votre compte - lier à un autre numéro, dépenser les fonds d'autres personnes.

J'ai l'impression que les développeurs d'applications oublient complètement que le trafic réseau n'est pas difficile à intercepter, même les requêtes https.

Personnellement, j'utilise le programme Fiddler - cet outil permet de proxy proxy, de le visualiser ou de le modifier. Afin d'accéder au contenu des requêtes https, en plus des paramètres de proxy, dans les propriétés de connexion du smartphone, vous devez en outre installer le certificat de confiance que le programme génère.

Tout d'abord, j'ai été satisfait de l'estime de soi des développeurs de l'application - l'API qui utilise l'application est située sur le domaine bestwap4ever .wog.ua. En parcourant simplement les URL, j'ai pu découvrir que IIS 7.5 et 1C: Enterprise 8 étaient en direct sur le serveur, ainsi qu'une image de l'en-tête (peut-être que les fans de Machinarium ont écrit l'API?).

Le schéma d'autorisation est simple - une demande avec une «demande» pour envoyer un code à SMS vole vers l'une des méthodes API. Et ici, la première vulnérabilité est l'absence de toute limite. Sur le même numéro de téléphone, à partir d'une adresse IP, vous pouvez "commander" autant de SMS que vous le souhaitez.

Plus tard, dans les appels d'offres de l'entreprise, j'ai trouvé des informations selon lesquelles ils prévoyaient d'envoyer jusqu'à 1 000 000 de SMS par mois (ils sont prêts à dépenser environ 98 000 $ pour cela pendant un an). Il s'avère que la vulnérabilité peut entraîner des pertes de l'entreprise de ~ 8 200 $ par jour si 12 demandes sont envoyées par seconde.

Il convient de noter que pour que le serveur traite correctement les demandes, une autorisation de base est requise - c'est l'une des méthodes de protection utilisées par les développeurs. Pourquoi? Ce n'est pas clair - je n'y vois aucun sens - intercepter le login / mot de passe ou l'en-tête http requis n'est pas du tout un problème.

Une fois que l'utilisateur a reçu un SMS et entré le code dans l'application, il envoie une demande afin de vérifier la fiabilité du code et de recevoir un jeton. La vulnérabilité suivante et la plus critique était là - il n'y a aucune protection contre la force brute. La sélection d'un code, composé de 4 (!) Chiffres, ne prend pas beaucoup de temps.

Après avoir reçu le jeton, vous pouvez utiliser d'autres méthodes API. L'un d'eux permet de changer le code PIN de la carte de fidélité. La procédure est standard - entrez l'ancien code PIN, saisissez-en un nouveau. Je veux me concentrer sur cette méthode, car ici le développeur a utilisé une autre méthode de "protection" inutile. Naturellement, il n'y avait pas non plus de protection contre la force brute, mais l'ancienne épingle a été envoyée sous forme cachée. L'idée est bonne - le simple tri des combinaisons 0000-9999 échouera. L'implémentation est mauvaise - au lieu du code, un hachage md5 est envoyé. Sans substitutions de sel ou quoi que ce soit d'autre.

Honnêtement, je ne sais pas comment accéder au code de l'application et si c'est possible - donc même le md5 obsolète m'arrêterait si du sel était utilisé.

J'ai également réussi non seulement à forcer brutalement un jeton pour un compte «étranger», mais aussi à le glisser dans l'application - j'ai écrit un petit script sur node.js qui a mandaté le trafic et n'a remplacé que les réponses de la méthode gettoken.

L'article a été écrit après avoir discuté avec le "directeur adjoint du département informatique" de l'entreprise. Les gars ont réagi vivement - j'ai pu obtenir des contacts pour la communication dans les 24 heures. J'ai envoyé une description des vulnérabilités et une question sur la présence de bug bounty.

En réponse, j'ai reçu une lettre m'informant que j'avais été «repéré» - « Nous vous avons vu (380958302 ---) immédiatement et les serrures ont fonctionné… Je ne parlerai pas de toutes les serrures, mais beaucoup d'entre elles sont apparues hier »

Quant à moi, cela ressemble plus à du gel - car, comme je l'ai répondu à cette lettre, «la blague est que ce nombre ne m'est pas familier. J'ai testé sur les numéros 095866 ... "

Contrairement à la société WOG, le chef du département de la sécurité de l'information de l'opérateur mobile était beaucoup plus bavard, et ils ont installé un smartphone en guise de remerciement =)

Source: https://habr.com/ru/post/fr441088/


All Articles