BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 1
OWASP Top 10OWASP Top 10
N°8 ­ Falsification de requête inters...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 2
• • CSRF ?CSRF ?
• • Exemple simpleExemple simple
• • Les vuln...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 3
CSRF ?CSRF ?
Faire une action à un autre utilisateur sans qu'i...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 4
CSRF ?CSRF ?
Cette attaque fonctionne grâce aux Cette attaque ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 5
ExempleExemple
Sur un forum Sur un forum S S ::
AA souhaite su...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 6
ExempleExemple
L'attaquant La victime Le site victime
A V S
Sa...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 7
ExempleExemple
L'attaquant La victime Le site victime
A V S
Le...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 8
Beaucoup (si ce n'est toutes) les fonctionnalités Beaucoup (si...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 9
Pour réaliser une attaque
Utilisation classique des outils du ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 10
Reprise de l'exemple :
L'image qui ne se chargeait pas :L'ima...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 11
La méthode de l'image est réutilisable avec 
d'autres balises...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 12
Avec un peu de Avec un peu de JavaScriptJavaScript et de  et ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 13
Ce qui ne fonctionne pas :Ce qui ne fonctionne pas :
> Les re...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 14
Ce qui fonctionne :Ce qui fonctionne :
> Jetons (ou token) al...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 15
Ce qui fonctionne :Ce qui fonctionne :
> Vérification du > Vé...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 16
Ce qui fonctionne :Ce qui fonctionne :
Quelques solutions en ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 17
DémonstrationDémonstration
Voici la démonstration de l'attaqu...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 18
DémonstrationDémonstration
Connexion de l'utilisateur sur le ...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 19
DémonstrationDémonstration
L'utilisateur est connecté et peut...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 20
DémonstrationDémonstration
La victime reçoit un mail qui l'in...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 21
DémonstrationDémonstration
Il arrive sur ce site, qui contien...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 22
DémonstrationDémonstration
Extrait du code source de la pageE...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 23
DémonstrationDémonstration
Autant de fois la page est rafraîc...
BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF)
Return EXIT_SUCCESS ?Return EXIT_SUCCESS ?
42
of 24

Présentation CSRF (complète avec démo)

Présentation d'une attaque du type CSRF avec une présentation en fin de document. Présentation faite lors de ma Licence 3 Informatique à l'Université de Franche-Comté. Besançon, Novembre 2013.
Published on: Mar 4, 2016
Published in: Internet      
Source: www.slideshare.net


Transcripts - Présentation CSRF (complète avec démo)

  • 1. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 1 OWASP Top 10OWASP Top 10 N°8 ­ Falsification de requête intersite (CSRF)N°8 ­ Falsification de requête intersite (CSRF) Kevin BOULALA – Maxime MARTINKevin BOULALA – Maxime MARTIN
  • 2. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 2 • • CSRF ?CSRF ? • • Exemple simpleExemple simple • • Les vulnérabilités de cette attaqueLes vulnérabilités de cette attaque • • Comment éviter ces attaquesComment éviter ces attaques • • DémonstrationDémonstration PLANPLAN
  • 3. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 3 CSRF ?CSRF ? Faire une action à un autre utilisateur sans qu'il le veuille Faire une action à un autre utilisateur sans qu'il le veuille  et qu'il le sacheet qu'il le sache http://www.sitexe.com/?supprmsg=30http://www.sitexe.com/?supprmsg=30 ( (GETGET)) Attaque possible aussi avec la méthode Attaque possible aussi avec la méthode POSTPOST Exemple avec un forum :Exemple avec un forum : > Faire supprimer un message> Faire supprimer un message > S'abonner à un fil de discussion> S'abonner à un fil de discussion Exemple avec un site d'achat :Exemple avec un site d'achat : > Faire acheter quelque chose> Faire acheter quelque chose
  • 4. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 4 CSRF ?CSRF ? Cette attaque fonctionne grâce aux Cette attaque fonctionne grâce aux navigateursnavigateurs et que l'utilisateur victime est et que l'utilisateur victime est authentifiéauthentifié sur le site sur le site Ne nécessite que peu de compétences pointuesNe nécessite que peu de compétences pointues De même, facilement découverte avec un De même, facilement découverte avec un  minimum de connaissancesminimum de connaissances Du point de vue du site attaqué, Du point de vue du site attaqué, la victime est la victime est  le fautifle fautif
  • 5. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 5 ExempleExemple Sur un forum Sur un forum S S :: AA souhaite supprimer un message. souhaite supprimer un message. AA trouve l'URL type pour supprimer un message. trouve l'URL type pour supprimer un message. AA prépare un mail à envoyer à  prépare un mail à envoyer à VV avec une balise image  avec une balise image  contenant l'adresse censée supprimer le message sur contenant l'adresse censée supprimer le message sur SS.. L'attaquant La victime Le site victime A V S
  • 6. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 6 ExempleExemple L'attaquant La victime Le site victime A V S Salut ! Tu connais cette blague ?Salut ! Tu connais cette blague ? C'est un mec il rentre dans un bar et C'est un mec il rentre dans un bar et  il crie "COUCOU C'EST MOI !!" il crie "COUCOU C'EST MOI !!"  et enfaite c'était pas lui...et enfaite c'était pas lui... X Mail :Mail : Logo d'image non chargéLogo d'image non chargé Mais c'est ce qui permet Mais c'est ce qui permet  de charger la requête de charger la requête  censée supprimer le censée supprimer le  message sur message sur SS..
  • 7. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 7 ExempleExemple L'attaquant La victime Le site victime A V S Le navigateur de Le navigateur de VV interprète l'image. interprète l'image. Ce qui exécute la requête et supprime le message.Ce qui exécute la requête et supprime le message. VV ne s'en rend pas compte. ne s'en rend pas compte.
  • 8. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 8 Beaucoup (si ce n'est toutes) les fonctionnalités Beaucoup (si ce n'est toutes) les fonctionnalités  d'un site sont vulnérablesd'un site sont vulnérables Tout dépend de l'activité du site :Tout dépend de l'activité du site : Transaction boursièreTransaction boursière Vente en ligneVente en ligne Forum de discussionForum de discussion ...... VulnérabilitésVulnérabilités
  • 9. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 9 Pour réaliser une attaque Utilisation classique des outils du WEBUtilisation classique des outils du WEB HTMLHTML et  et JavaScriptJavaScript Le plus populaire : la Le plus populaire : la balise imgbalise img en HTML  en HTML  (technique utilisé dans l'exemple précédent)(technique utilisé dans l'exemple précédent) VulnérabilitésVulnérabilités
  • 10. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 10 Reprise de l'exemple : L'image qui ne se chargeait pas :L'image qui ne se chargeait pas : <img src='<img src='http://www.sitexe.com/?supprmsg=30http://www.sitexe.com/?supprmsg=30' /' />> Version JavaScript :Version JavaScript : <script><script> var foo = new image();var foo = new image(); foo.src="http://www.sitexe.com/?supprmsg=30";foo.src="http://www.sitexe.com/?supprmsg=30"; </script></script> Note : selon le navigateur, il ne s'affichera rien ou Note : selon le navigateur, il ne s'affichera rien ou  bien au pire des cas le logo vu plutôt.bien au pire des cas le logo vu plutôt. VulnérabilitésVulnérabilités X
  • 11. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 11 La méthode de l'image est réutilisable avec  d'autres balises : <<scriptscript src...>, < src...>, <iframeiframe src...>, etc src...>, etc Il est aussi possible de faire cette attaque avec la Il est aussi possible de faire cette attaque avec la  méthode méthode POSTPOST.. La difficulté n'est pas plus grande, il est juste plus La difficulté n'est pas plus grande, il est juste plus  délicat de le mettre en place.délicat de le mettre en place. VulnérabilitésVulnérabilités
  • 12. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 12 Avec un peu de Avec un peu de JavaScriptJavaScript et de  et de HTML HTML :: <body <body onload="document.getElementById('f').submit()"onload="document.getElementById('f').submit()">> <form id="f" action="<form id="f" action="http://sitexe.com/poster.phphttp://sitexe.com/poster.php" "  method="post" name="form">method="post" name="form"> <input name="titre" <input name="titre" value="Blague pourrie"value="Blague pourrie">> <textarea name="message"><textarea name="message"> C'est un gars qui rentre C'est un gars qui rentre  dans un café et plouf !dans un café et plouf ! </textarea></textarea> <input name="update" value="update"><input name="update" value="update"> </form></body></form></body> Il est nécessaire de lire le code du site victime pour faire Il est nécessaire de lire le code du site victime pour faire  cette attaque.cette attaque. VulnérabilitésVulnérabilités
  • 13. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 13 Ce qui ne fonctionne pas :Ce qui ne fonctionne pas : > Les requêtes POST (dernière partie : Vulnérabilités)> Les requêtes POST (dernière partie : Vulnérabilités) > Les opérations en plusieurs étapes :> Les opérations en plusieurs étapes : Du moment que l'attaquant peut prévoir les différentes Du moment que l'attaquant peut prévoir les différentes  étapes...étapes... PréventionPrévention
  • 14. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 14 Ce qui fonctionne :Ce qui fonctionne : > Jetons (ou token) aléatoires ou> Jetons (ou token) aléatoires ou jetons de validités jetons de validités : : Les jetons sont générés aléatoirement dans le temps.Les jetons sont générés aléatoirement dans le temps. Le jeton doit être transmis avec la requête.Le jeton doit être transmis avec la requête. Le serveur pourra vérifier que le formulaire a bien été Le serveur pourra vérifier que le formulaire a bien été  produit quelques minutes auparavant.produit quelques minutes auparavant. PréventionPrévention
  • 15. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 15 Ce qui fonctionne :Ce qui fonctionne : > Vérification du > Vérification du Referer HeaderReferer Header : : Referer Header correspond à une information transmise à un Referer Header correspond à une information transmise à un  serveur HTTP, indiquant où se trouve le lien qui nous a permis serveur HTTP, indiquant où se trouve le lien qui nous a permis  de le rejoindre.de le rejoindre. Avec une attaque CSRF, cette information est impossible à Avec une attaque CSRF, cette information est impossible à  récupérer.récupérer. Quelques soucis : les navigateurs peuvent désactiver l'envoi.Quelques soucis : les navigateurs peuvent désactiver l'envoi. Si on vient d'un domaine HTTPS aucun referer n'est envoyé.Si on vient d'un domaine HTTPS aucun referer n'est envoyé. PréventionPrévention
  • 16. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 16 Ce qui fonctionne :Ce qui fonctionne : Quelques solutions en vrac :Quelques solutions en vrac :                                                                                           CAPTCHA CAPTCHA                                                            Ré­authentificationRé­authentification                           Désactiver les scripts dans le Désactiver les scripts dans le  navigateur (& utiliser POST sur le site)navigateur (& utiliser POST sur le site) etcetc PréventionPrévention
  • 17. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 17 DémonstrationDémonstration Voici la démonstration de l'attaque effectuéeVoici la démonstration de l'attaque effectuée en classe en classe  Nous verrons le cas d'un site non sécurisé et sécuriséNous verrons le cas d'un site non sécurisé et sécurisé en parallèleen parallèle Cette attaque a été réalisé avec le navigateur MidoriCette attaque a été réalisé avec le navigateur Midori Les navigateurs tel que Chrome empêche ce genre d'attaqueLes navigateurs tel que Chrome empêche ce genre d'attaque
  • 18. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 18 DémonstrationDémonstration Connexion de l'utilisateur sur le site qui va être attaquéConnexion de l'utilisateur sur le site qui va être attaqué Site sécuriséSite sécuriséSite non sécuriséSite non sécurisé
  • 19. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 19 DémonstrationDémonstration L'utilisateur est connecté et peut voir ses messagesL'utilisateur est connecté et peut voir ses messages Site sécuriséSite sécuriséSite non sécuriséSite non sécurisé
  • 20. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 20 DémonstrationDémonstration La victime reçoit un mail qui l'invite à aller sur un siteLa victime reçoit un mail qui l'invite à aller sur un site
  • 21. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 21 DémonstrationDémonstration Il arrive sur ce site, qui contient des requêtes forgéesIl arrive sur ce site, qui contient des requêtes forgées
  • 22. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 22 DémonstrationDémonstration Extrait du code source de la pageExtrait du code source de la page Requête forgée pour Requête forgée pour  attaquer le site pas attaquer le site pas  sécurisésécurisé Et celle­ci pour le Et celle­ci pour le  site sécurisésite sécurisé
  • 23. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) 23 DémonstrationDémonstration Autant de fois la page est rafraîchie, autant de fois Autant de fois la page est rafraîchie, autant de fois  les requêtes forgées seront exécutéesles requêtes forgées seront exécutées Site sécuriséSite sécuriséSite non sécuriséSite non sécurisé
  • 24. BOULALA ­ MARTIN ­ 2013 Cross Site Request Forgery (CSRF) Return EXIT_SUCCESS ?Return EXIT_SUCCESS ? 42

Related Documents