Stripe organise un challenge autour de la sécurité des applications web. Le but du jeu est de capturer un drapeau (12 chiffres) en passant 9 niveaux (numérotés de 0 à 8). Pour passer un niveau, il faut réussir à récupérer le mot de passe d'une petite application web.
Les premiers niveaux sont faciles d'accès avec des attaques tout ce qu'il y a de plus classique comme des injections SQL et des XSS. Le dernier niveau est, par contre, bien plus relevé (je bloque dessus pour le moment).
Si vous voulez aussi jouer, ça se passe sur https://stripe-ctf.com/.
# Compte github requis
Posté par lathan . Évalué à 1.
Quel intérêt d'exiger un compte github ?
[^] # Re: Compte github requis
Posté par Kaane . Évalué à 4.
Quel intérêt d'exiger un compte github ?
C'est un site pedagogique, il utilise toutes les méthodes disponibles pour apprendre les bases de la sécurité a des non initiés.
Les personnes qui ont utilisé leur vrai compte GitHub pour rentrer dans le site vont apprendre très vite qu'il ne faut pas donner son mot de passe à n'importe quel site sur le net.
[^] # Re: Compte github requis
Posté par Bruno Michel (site web personnel) . Évalué à 10.
Heu, je peux me tromper mais je n'ai vraiment pas l'impression qu'un compte github soit obligatoire pour s'inscrire. Il suffit juste d'entrer une adresse email et un mot de passe pour s'inscrire.
D'autre part, pour les personnes comme moi qui ont utilisé leur compte github pour s'authentifier, ça se passe via OAuth et Stripe n'a pas accès à mon mot de passe. Le token OAuth ne donne qu'un droit de lecture sur les infos publiques.
Bref, pour autant que je puisse en juger, ça respecte les bonnes pratiques du développement web.
# Merci bien...
Posté par jigso . Évalué à 2.
J'étais parti pour me coucher, et voila, je vais y passer la nuit… Déjà au level 3.
Sinon plus sérieusement je me demande s'il existe un site qui reprend les bonnes pratiques technique en matière de sécurité de site web, d'authentification, de gestion de mot de passe, de session, etc.
Bref quelque chose de vraiment détaillé, et surtout avec des explications sur les trucs à faire et ceux à ne pas faire.
[^] # Re: Merci bien...
Posté par Bruno Michel (site web personnel) . Évalué à 5. Dernière modification le 24 août 2012 à 00:00.
Dans le monde Ruby on Rails, le guide sur la sécurité est une très saine lecture. Sinon, on peut aussi trouver pas mal d'infos sur le site de l'OWASP (beaucoup de contenus, mais un peu trop fouillis à mon goût). Enfin, il y a quelques autres liens intéressants sur https://stripe-ctf.com/about
[^] # Re: Merci bien...
Posté par Tony Flow . Évalué à 1.
Merci aussi ! J'ai trouvé ça assez sympa comme exercices.
Ca permet de réviser les classiques, d'en mettre en oeuvre certains pour la 1ère fois. Mais c'est aussi l'occasion d'en creuser d'autres voire d'en découvrir. Bref c'est distrayant pour l'informaticien avide d'énigmes tout en étant instructif ;)
(et apparemment on gagne un T-shirt à la fin !)
# Pas si facile !
Posté par Kioob (site web personnel) . Évalué à 4.
Et bien je sèche au niveau 4, "Karma Trader" : je vois pas d'injection SQL possible, SQLite est bien sensible à la casse, pas trouvé comment changer l'émetteur d'un transfert, ni même comment fausser le "trusts_me", etc.
M'embarquer dans une tentative pour crafter mon propre cookie de session me semble bien difficile, même avec un fichier d'entropie "fixe" :/
Bref, je dois être mauvais.
alf.life
[^] # Re: Pas si facile !
Posté par Maclag . Évalué à 10.
Avant que quelqu'un réponde, ne pas donner de solutions publiques, vous allez gâcher tout l'intérêt du truc!
[^] # Re: Pas si facile !
Posté par Kioob (site web personnel) . Évalué à 1.
Je plussois. J'aimerais effectivement comprendre, mais ça peut attendre quelques jours/semaines, et aucune réponse ne devrait être donnée en public.
Peut-être que le projet fournira justement ces explications après un certain temps ?
alf.life
[^] # Re: Pas si facile !
Posté par Bruno Michel (site web personnel) . Évalué à 3.
Un tout petit indice, en ROT13 de surcroît, ça ne devrait pas gâcher le niveau à qui que ce soit : Y'hgvyvfngrhe xnezn_sbhagnva ivfvgr geèf eéthyvèerzrag yr fvgr.
[^] # Re: Pas si facile !
Posté par jigso . Évalué à 1.
Rg fv ba yhv qbaar ha xnezn…
[^] # Re: Pas si facile !
Posté par Kioob (site web personnel) . Évalué à 1.
ebsy… har fvzcyr vawrpgvba WF…
J'ai honte de ne pas y avoir pensé plus tôt… merci !
alf.life
# Merci pour le lien
Posté par Thom (site web personnel) . Évalué à 1.
Merci,
Je sais ce que je vais essayer de faire ce soir.
En tout cas, leur site est joli.
La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick
# intéressant mais c'est quoi le but ?
Posté par pralines . Évalué à 3.
le but de leur challenge c'est de récupérer les @ip, logins et mots de passes de hackers ?
faut-il réussir tous les niveaux pour avoir la réponse ?
est-ce qu'à la fin de l'opération on aura plus d'infos que le tableau des highscore (genre la solution de chaque tableau avec éventuellement quelques explications) ?
Obi-Wan Kenobi ?
Envoyé depuis mon Archlinux
[^] # Re: intéressant mais c'est quoi le but ?
Posté par Bruno Michel (site web personnel) . Évalué à 5.
J'espère. Si ce n'est pas le cas, je posterais ici des explications pour les premiers niveaux.
[^] # Re: intéressant mais c'est quoi le but ?
Posté par pralines . Évalué à 2.
il y a un peu plus d'infos sur leur blog Stripe (je suppose que c'est en le suivant que tu as appris le début de ce challenge…),
il est dit qu'on peut causer avec les autres participants sur leur chat,
à la fin du challenge CTF précédent la solution complète a été postée sur GitHub, j'espère qu'ils vont faire la même chose, à surveiller après le 29 août
Envoyé depuis mon Archlinux
# Très ludique
Posté par neerd . Évalué à 1.
Voilà j'ai enfin terminé, un challenge vraiment sympa qui m'a fait me creuser les méninges à plusieurs reprises (parfois sur des trucs cons … par exemple j'ai perdu un temps fou sur le niveau 7 à ne pas lire correctement le retour de commande ….)
En tout cas j'ai pu réviser mes classiques et apprendre de nouvelles choses (jquery, hash length extension attack …)
# Et voilà, c'est terminé...
Posté par laurentm . Évalué à 1.
Merci Bruno d'en avoir parlé ici, ça aurait été dommage de passer à côté de ça.
J'ai réussi à aller jusqu'au dernier niveau, mais impossible de le passer … je n'ai absolument aucune piste pour le résoudre, même pas la moindre petite idée ! Vivement que les solutions soient en ligne.
En tout cas, c'était sympa, ça permet de se rendre compte de ce qu'il est possible de faire avec une injection SQL ou du XSS. Même s'ils se sont donnés du mal pour donner un contexte plus ou moins réaliste à chaque niveau, ça aurait été sympa de plancher sur du vrai code contenant des failles exploitables (et exploitées).
Et en bonus j'ai fait mon premier padding SHA1, je ne savais même pas que c'était possible :)
# Solutions
Posté par Bruno Michel (site web personnel) . Évalué à 4. Dernière modification le 30 août 2012 à 17:57.
Pour les curieux, http://blog.ioactive.com/2012/08/stripe-ctf-20-write-up.html et http://jasiek.posterous.com/stripe-ctf-20-walkthrough donnent les solutions des différents niveaux.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.