Skip to content

Mes contributions sécurité : été 2016

Depuis mon dernier article « Contributions sécurité : mi-2016 », j’ai bien sûr continué ma recherche de vulnérabilités sur mon temps libre. Comme prévu je vous fais un retour d’expérience sur cette recherche.

Bug Bountys

Cet été et depuis mon dernier article, je me suis surtout tourné vers les Bugs Bounty, principal point de curiosité depuis que je me suis lancé dans la recherche de vulnérabilités. Pour cela, je me suis penché sur trois plates-formes de Bug Bounty, dont une européenne :

  • Bugcrowd, principalement
  • HackerOne
  • Bounty-Factory, notamment à l’occasion de la Nuit du Hack 2016

Je me suis en effet rendu cet été à la Nuit du Hack 2016 avec quelques collègues, c’était pour moi la première fois que je me rendais à une conférence de sécurité et je n’ai pas été déçu du voyage, l’ambiance y est très sympathique et les conférences très intéressantes.

En plus du traditionnel Wargame et des conférences, la Nuit Du Hack organisait durant la journée une « chasses aux bugs » au travers de la toute jeune plate-forme de bug bounty : Bounty-Factory.

L’occasion de rencontrer, durant la Nuit du Hack, les fondateurs de Bounty Factory, mais surtout la possibilité de participer à des bugs bounty exclusifs à la période de la Nuit Du Hack. Durant cette chasse aux bugs, j’ai d’ailleurs trouvé quelques vulnérabilités dont :

  • Une faille « mass-user creation » sur Qwant, récompensée
  • Une faille « User enumeration » au travers du processus de reset du mot de passe, refusée mais qui m’a quand même permis de gagner un t-shirt brandé « Ovh Bug Bounty Hunter » 🙂

Techniquement, les failles de type « mass-user creation » sont intéressantes et encore largement non patchées sur les services web. Elles se caractérisent par la possibilité de créer un grand nombre d’utilisateurs via un script. Un attaquant est alors capable de créer plusieurs milliers/millions d’utilisateurs (ou plus), sans aucune contrainte et peut ainsi :

  • Saturer les ressources (stockage) de l’architecture ciblée
  • Fausser les données et les statistiques (comptes actifs, nombre de client)

De plus, la création d’un grand nombre de compte peut avoir des effets de bord difficiles à envisager. Par exemple, l’envoi d’un nombre astronomique de mails lors d’une campagne de mailing prenant pour source la base mail du service visé.

Voici la vidéo de cette vulnérabilité « mass user creation » sur Qwant, réalisée très rapidement dans le cadre de cette chasse aux bugs de la Nuit du Hack. Cela était d’ailleurs particulièrement intense car une salle de plus de 200 personnes était en train de rechercher des bugs sur quelques cibles (3 si mes souvenirs sont bons) et il fallait être le premier à les rapporter pour être récompensé :

Afin de patcher ce genre de faille, la simple mise en place d’un captcha, bloquant ainsi toute exécution de script et génération automatisée, est suffisante. Une autre protection complémentaire pourrait être de supprimer un compte qui n’a pas validé sa création via l’adresse mail indiquée. Attention, cette dernière mesure n’est pas suffisante à elle seule car si l’attaquant possède son propre service mail, il peut aisément scripter la réception, puis validation du lien présent dans le mail 😉

Concernant les autres bugs bounty, j’ai surtout été actif sur BugCrowd, après m’être inscrit au début de l’été, j’ai soumis 13 bugs et remporté 39 points, ce qui m’a amené jusqu’au top 400. Je suis, à l’heure de l’écriture de cet article, classé 549ème car cela fait quelques semaines que je n’ai pas soumis de nouveau bug.

Mon retour d’expérience concernant les bugs bounty est plutôt positif. Bien que j’ai n’ai pas encore eu de retour monétaire (mise à part lors de la nuit du hack), le fait de rechercher dans le cadre d’un bug bounty est beaucoup plus formateur car les failles sont plus difficiles à trouver mais toujours présentes : rien n’est sécurisé à 100%.
Pour débuter, je me suis focalisé sur les programmes qui n’offraient pas de récompenses monétaires sur BugCrowd. La raison principale à cela est que plus un programme offre de récompense monétaire importante, plus il attirera les meilleurs hunter (chasseurs), les failles seront donc plus difficiles à trouver 🙂

J’ai notamment participé aux programmes de NolimitVPN, Sophos, ISC, Constant Contact, Lyst.com, Jet.com, MasterCard, Mangeto et enfin flowthings.io comme indiqué dans mon dernier article à ce sujet. Sophos a été ma cible principale avec 5 bugs remontés.
Parmi les failles trouvées sur ces différents programmes :

  • CSRF (sur les boutiques ou les espaces authentifiés)
  • Open redirect après une authentification
  • Information disclosure dans des fichiers de log oubliés
  • Mass user creation
  • Banner grabbing (quand accepté par les règles du programme)
  • Bypass de captcha

Le suivi d’un programme de Bug Bounty demande une motivation importante, plusieurs milliers de « hunters » sont comme nous à la recherche des vulnérabilités et cela rend le travail plus difficile car les failles basiques sont généralement déjà patchées. Ainsi, on se retrouve avec beaucoup de failles « duplicate », ce qui indique qu’un autre chercheur l’a trouvé et soumise avant nous. Alors, une récompense plus maigre que le premier soumissionnaire est accordée, voire aucune récompense.

Note : Les détails techniques de ces failles ne peuvent pas toujours êtres diffusées, il faut en effet généralement demander la permission au gestionnaire du programme Bug Bounty.

Site web association : Reporters sans frontières

J’ai également eu l’occasion de remonter une faille de sécurité de type XSS sur le site de Reporters sans frontières. Cette faille Reflected XSS était présente sur le site principal de RSF et aurait pu permettre à un attaquant de piéger un administrateur/utilisateur du site afin d’afficher une fausse page d’authentification, ou même de voler des identifiants bancaires.

Note : J’ai d’abord souhaité passer par le Protocole Zataz, afin de tester ce « service ». Expérience que je ne réitérerai sûrement jamais. Aucune réponse après 4 semaines, RSF n’a visiblement jamais été prévenu… Plutôt inutile donc, mais au moins j’aurais essayé !

Voici une vidéo exposant cette vulnérabilité, maintenant patchée :

J’utilise ici la faille XSS afin de rediriger la victime vers une copie du site web, et plus particulièrement une copie de l’espace donation afin de récupérer les éléments bancaires saisis. La copie de l’espace « donate » a été réalisée très rapidement avec le script python « weeman » qui permet de réaliser une page de phishing très rapidement. On peut en effet indiquer la page à copier puis les données volées s’affichent dans notre terminal. Très simple d’utilisation.

RSF m’a d’ailleurs remercié en m’envoyant un exemplaire de leur dernier album photo :


C’est tout pour mon activité durant cet été, j’ai quelque peu priorisé les bug bountys par rapport aux solutions open-source après la Nuit du Hack qui m’a fait découvrir l’intensité et la difficulté des bug bountys. Mais la roue tourne et il en faut pour tout le monde ! 🙂

Je réécrirai un article similaire d’ici cette fin d’année, en espérant que ces retours d’expérience soient intéressants à lire 😉

Partager :
Published inAdvisory et Contributions

4 Comments

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *