Tout sur les attack CSRF - Cross Site Request Forgery
Bonjour à tous :-)
Aujourd'hui, je vais tenter de vous expliquer ce qu'est une attaque de type CSRF (Cross Site Request Forgery). Pour y arriver, je vais vous raconter une petite histoire qui devrait bien résumer ce que c'est :-)
Luc, un gars de 17 ans, quitte la maison pour aller à une colonie de vacance en tant que moniteur pour les jeunes. Son père Pierre lui dit de ne pas hésiter à lui téléphoner s’il a des soucis d'argent durant son temps là -bas.
Environ 3 jours après être arrivé, Luc perd toutes ses économies en jouant au poker avec ses copains et n'a plus d'argent pour acheter ses cigarettes lol, il téléphone donc à sont père et lui explique qu'il c'est fait voler tout sont argent ce qu'il croit sans douter de lui lol.
Pierre se log donc sur un site de transfert bancaire et envoi 100$ Ã son fils. Il remplit le formulaire et clique sur "envoyez".
L'URL ressemble donc à ceci
Le lendemain, Luc se connecte à sont compte et récupère l'argent. Le soir même, il laisse l'argent dans sa chambre et va faire un feu au milieu du camp pour une soirée conte et légende. Valérie qui passe par là , voie l'argent sur sont lit et le vole en ce disant que c'est exactement ce qu'il lui manquait pour acheter la grosse trousse de maquillage qu'elle avait vue la veille quand elle est allée au magasin avec ses deux autres copine...
Pauvre Luc lol quand il revient dans sa chambre, il se rend compte qu'il a plus d'argent. Il se dit qu'il ne peut quand même pas demander à son père un autre montant d'argent sous prétexte de s'être fait encore volé lol ... Il décide donc de déjouer le système.
Il se log au site internet de transfert bancaire et envois un message de remerciement à sont père qui ressemble a ceci.
Notez que Luc à utilisé du BBCode pour sa balise image, qui se traduit automatiquement en HTML l'hors de l'affichage.
Le lendemain matin, Pierre voit le message de son fils et décide de l'ouvrir pour voir ce qu'il contient. Son navigateur tente alors de télécharger la page et l'afficher comme une image. Parce que le lien fourni n'est pas une image valide, le navigateur affiche une image brisée. Toutefois, le serveur lui voit que Pierre à visité le lien, et transfère le 100 $ à Luc.
Tout cela se passe invisiblement et en quelques secondes. Bien qu'il soit peu probable qu'un site de transfert bancaire soit vulnérable à une attaque comme celle-ci, la faille reste tout de même très présente sur le web pour toute sorte de situations.
Veuillez citer la source et l'auteur si vous désirez prendre mon tuto.
Soyez intelligent et restez WhiteHat!
Par CyberSee
Aujourd'hui, je vais tenter de vous expliquer ce qu'est une attaque de type CSRF (Cross Site Request Forgery). Pour y arriver, je vais vous raconter une petite histoire qui devrait bien résumer ce que c'est :-)
Luc, un gars de 17 ans, quitte la maison pour aller à une colonie de vacance en tant que moniteur pour les jeunes. Son père Pierre lui dit de ne pas hésiter à lui téléphoner s’il a des soucis d'argent durant son temps là -bas.
Environ 3 jours après être arrivé, Luc perd toutes ses économies en jouant au poker avec ses copains et n'a plus d'argent pour acheter ses cigarettes lol, il téléphone donc à sont père et lui explique qu'il c'est fait voler tout sont argent ce qu'il croit sans douter de lui lol.
Pierre se log donc sur un site de transfert bancaire et envoi 100$ Ã son fils. Il remplit le formulaire et clique sur "envoyez".
L'URL ressemble donc à ceci
Code :
www.victime.com/transfer.php?from=Pierre&to=Luc&amount=100
Le lendemain, Luc se connecte à sont compte et récupère l'argent. Le soir même, il laisse l'argent dans sa chambre et va faire un feu au milieu du camp pour une soirée conte et légende. Valérie qui passe par là , voie l'argent sur sont lit et le vole en ce disant que c'est exactement ce qu'il lui manquait pour acheter la grosse trousse de maquillage qu'elle avait vue la veille quand elle est allée au magasin avec ses deux autres copine...
Pauvre Luc lol quand il revient dans sa chambre, il se rend compte qu'il a plus d'argent. Il se dit qu'il ne peut quand même pas demander à son père un autre montant d'argent sous prétexte de s'être fait encore volé lol ... Il décide donc de déjouer le système.
Il se log au site internet de transfert bancaire et envois un message de remerciement à sont père qui ressemble a ceci.
Code :
Merci beaucoup pour l'argent papa. Je vais le garder sur moi pour éviter que ça se reproduise.
[ img ]www.victime.com/transfer.php?from=Pierre&to=Luc&amount=100[ /img ]
On se voit bientôt! Dit salut à maman de ma part!
Notez que Luc à utilisé du BBCode pour sa balise image, qui se traduit automatiquement en HTML l'hors de l'affichage.
Le lendemain matin, Pierre voit le message de son fils et décide de l'ouvrir pour voir ce qu'il contient. Son navigateur tente alors de télécharger la page et l'afficher comme une image. Parce que le lien fourni n'est pas une image valide, le navigateur affiche une image brisée. Toutefois, le serveur lui voit que Pierre à visité le lien, et transfère le 100 $ à Luc.
Tout cela se passe invisiblement et en quelques secondes. Bien qu'il soit peu probable qu'un site de transfert bancaire soit vulnérable à une attaque comme celle-ci, la faille reste tout de même très présente sur le web pour toute sorte de situations.
Veuillez citer la source et l'auteur si vous désirez prendre mon tuto.
Soyez intelligent et restez WhiteHat!
Par CyberSee
Spyke
Bon membre Messages : 353 Sujets : 20 Points: 13 Inscription : Jun 2011 |
Tout sur les attack CSRF - Cross Site Request Forgery
Merci Cyber =D
|
CyberSee
Admin fondateur de N-PN Messages : 1,721 Sujets : 287 Points: 158 Inscription : Jan 2012 |
Tout sur les attack CSRF - Cross Site Request Forgery
ça me fait plaisir ^^
|
artis
Membre Messages : 39 Sujets : 4 Points: 0 Inscription : Aug 2011 |
Tout sur les attack CSRF - Cross Site Request Forgery
Merci pour l'histoire
Je voulais juste rajouter une petite précision sur la manière de sécuriser le problème. C'est assez simple, on peut ajouter un paramètre: un token C'est un code unique par utilisateur, ainsi il n'est pas possible aux autres de le retrouver. Il faut donc que le token soit valide pour que l'action de page puisse s'exécuter correctement. Pour reprendre l'exemple, il faudrait que l'image pointe vers cette adresse en admettant que le token soit le bon : Code : www.victime.com/transfer.php?from=Pierre&to=Luc&amount=100&csrf_token=4d894zef98sdf4erg On peut aussi améliorer le système et limiter un token à une seule utilisation. Ainsi si la requête est interceptée, le token aura déjà été utilisé et il ne sera plus valide. J'espère que j'ai pas trop mal expliqué pour ceux qui ne connaissaient pas ce type de faille |
CyberSee
Admin fondateur de N-PN Messages : 1,721 Sujets : 287 Points: 158 Inscription : Jan 2012 |
Tout sur les attack CSRF - Cross Site Request Forgery
Merci pour l'ajout Artis :-) Tout à fait, les tokens sont une très bonne façon d'empêcher la faille :-)
|
artis
Membre Messages : 39 Sujets : 4 Points: 0 Inscription : Aug 2011 |
Tout sur les attack CSRF - Cross Site Request Forgery
De rien
Après pour les actions délicates ou importantes je pense qu'il faut demander à l'utilisateur une confirmation. Ça protège à la fois des attaques CSRF et des fausses manipulations de l'utilisateur ^^ |
kallimero
Imbécile heureux Messages : 37 Sujets : 2 Points: 4 Inscription : Aug 2011 |
Tout sur les attack CSRF - Cross Site Request Forgery
Un captcha peut aussi servir d'anti csrf.
Il y a un tuto sur la correction de ces failles sur le site du zero : http://www.siteduzero.com/tutoriel-3-157...-csrf.html Aussi, tu t'es fait leeché (à moins que tu sois "hacker-mode" ) : http://hacktivisme.net/archive/index.php...d-647.html |
CyberSee
Admin fondateur de N-PN Messages : 1,721 Sujets : 287 Points: 158 Inscription : Jan 2012 |
Tout sur les attack CSRF - Cross Site Request Forgery
Ah le con lol je le ban tout de suite ... En plus je prend le temps de dire dans chaque tuto "Veuillez citer la source et l'auteur si vous désirez prendre mon tuto." ...
|
flashmates
Membre Messages : 38 Sujets : 2 Points: 0 Inscription : Jun 2011 |
Tout sur les attack CSRF - Cross Site Request Forgery
j'allais te prévenir du leech mais j'ai été trop lent .
Peut être qu'on devrait limiter les tutos aux membres qui laissent un certain nombre de messages ou un truc du genre.. Le point positif c'est que ton tuto est assez bon pour etre leeché ^^. |
CyberSee
Admin fondateur de N-PN Messages : 1,721 Sujets : 287 Points: 158 Inscription : Jan 2012 |
Tout sur les attack CSRF - Cross Site Request Forgery
On ne peut pas, les tutos c'est ce qui fait notre pub en quelque sorte. Si on empêche google de les indexer, on va perdre de la visibilité.
|
flashmates
Membre Messages : 38 Sujets : 2 Points: 0 Inscription : Jun 2011 |
Tout sur les attack CSRF - Cross Site Request Forgery
oui et de tout façon il y aurait quand même du leech..
|
ThibauT
Keyboard not found, press F1 to resume. Messages : 348 Sujets : 6 Points: 69 Inscription : Jun 2012 |
RE: Tout sur les attack CSRF - Cross Site Request Forgery
Si tu voulais pas être leeché, fallais pas faire un aussi bon tuto :p
Sous forme d'histoire, ca parait vraiment simple. En clair : Bravo \o/ Martin Golding a écrit :"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." Gnomino a écrit :et quand je suis payé je fais ce qu'on me demande :B |
InFamouZz
Membre actif Messages : 76 Sujets : 21 Points: 3 Inscription : Dec 2011 |
RE: Tout sur les attack CSRF - Cross Site Request Forgery
enorme ton tuto x)
|
CyberSee
Admin fondateur de N-PN Messages : 1,721 Sujets : 287 Points: 158 Inscription : Jan 2012 |
RE: Tout sur les attack CSRF - Cross Site Request Forgery
On fait que dans la qualitée chez N-PN :p
Code PHP : <?php |
boost
Newbie Messages : 4 Sujets : 2 Points: 4 Inscription : Feb 2013 |
RE: Tout sur les attack CSRF - Cross Site Request Forgery
Superbe tutos,
Pour les tokens ont peut les utiliser aussi pour savoir si le formulaire provient bien de notre site. Imaginons un site ou on arrive directement sur la page index vous pouvez générer un tokens aléatoire par page, si le premier tokens est valide on en génère un nouveau pour la nouvelle page. C'est une manière de faire mais elle est pas très pratiques, faut suivre un ordre de page... Ce qu'on peut faire c'est générer un token alétoire dans un champ hidder par formulaire et regarder si se token existe. C'est juste une fason de faire... |
InstinctHack
Posting Freak Messages : 1,366 Sujets : 184 Points: 299 Inscription : Dec 2011 |
RE: Tout sur les attack CSRF - Cross Site Request Forgery
boost, pour ça il y a le referer mais effectivement il peut être modifier par le client, donc le hasher dans un token peut etre une bonne idée...
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!" |
Akidzuki
Newbie Messages : 7 Sujets : 2 Points: 2 Inscription : May 2013 |
RE: Tout sur les attack CSRF - Cross Site Request Forgery
Du côté de OWASP on trouve aussi quelques trucs interessants pour se proteger comme le CSRFTester et une bonne petite doc.
Pour les non anglophones, je peux faire une traduction, y a qu'Ã demander https://code.google.com/p/owaspcsrftester/ https://owasp.org/index.php/Cross-Site_R...heat_Sheet |
0pc0deFR Non-enregistré |
RE: Tout sur les attack CSRF - Cross Site Request Forgery
Je me permet l'ajout d'un petit papier écrit par moi même concernant la CSRF: https://github.com/0pc0deFR/Papers/blob/...dPress.pdf
|
LeuhVa
Membre Messages : 35 Sujets : 3 Points: 2 Inscription : May 2013 |
RE: Tout sur les attack CSRF - Cross Site Request Forgery
Puisqu'on est dans le partage de lien concernant les CSRF..
Petits tuto sur ce type d'attaque écrit par geo http://themaze.hebergratuit.com/Info/Web...20CSRF.htm |