CSRFT

lorem ipsum


Lorem ipsum



Paul AMAR


a propos de ... ?


  • Récapitulatif d'attaques CSRF
  • Présentation de l'outil
  • 2 démos 
  • Problèmes au sein d'applications Web
  • Comment se protéger ?
  • Petite surprise



    # whoami


    • Étudiant à l'Ensimag (Grenoble)
    • Passionné de sécurité (Web)
    • Développeur Open Source


    Twitter: @PaulWebSec

    Github: PaulSec                 


    recapitulatif


                             Fig. Exploitation 'classique' de vulnérabilité CSRF


    pourquoi csrft?


    J'avais besoin de quelque chose qui soit:                       

    • Léger
    • Multi-plateforme
    • Open Source
    • Et qui combine les attaques CSRF!


    Résultat? Rien.


    comment ça marche?


                                                        Fig. Utilisation de CSRFT


    Comment?


    • HTTP Server développé en Node.js

    • Reproduit des requêtes GET/POST
      • Crée les formulaires "à la volée"

    • Client/Server codés en JavaScript
      • Communication en JSON


    plus, plus, plus ...


    • Possibilité de créer des scénarios
      • En combinant les CSRFs

    • 2 méthodes d'attaque possibles pour le moment
      •   Attaque spéciale
        Eg. Changer le mot de passe
      • Attaque par dictionnaire
        Eg. Connecter  l'utilisateur


    et quelques outils...


    • Proxy JavaScript 

    Altère requêtes HTTP, injecte une iframe malicieuse dans le HTML

    Inspiré de Chema Alonso et de sa présentation:

    Owning Bad Guys {And Mafia} With Javascript Botnets  @ Defcon 20

    • Outil Python 

    En ligne de commande et qui automatise l'exploitation de failles CSRF




    quelques demos?


    DEMO (1/2)


    Combinaison d'attaques CSRF

    1. Logguer l'utilisateur
    2. Lui changer son mot de passe
    3. Déconnecter l'utilisateur


    Attaque entièrement transparente


    Demo (2/2)


    Démo avec l'outil en ligne de commande


    • Attaque automatique qui utilise l'outil en ligne de commande.
    • Génère les fichiers de configurations, formulaires pour changer le mot de passe de la (les) victime(s)


    Mauvais design dans web app (1/2)


                                                                          Aucun token lors du login
                                                                    Le reste de l'application
                                                           est donc vulnérable

       


    Mauvais design dans web app (2/2)


                                                                               Aucun token pour changer
                                                         son mot de passe

                                                                           Vulnérable si les identifiants sont         "faibles'


    exemple irl


    • Box internet "sécurisé"
    • Jeton de sécurité pour éviter les CSRF..


    • Sauf une page: login.cgi
    • Permet de se logguer, changer le mot de passe...
    • En étant non-authentifié.


    comment se protéger?


    • Jeton de sécurité
      • Aléatoire
      • Généré/Validé côté serveur
      • L'un des mécanismes les plus utilisés

    • Re-Authentication
      • Si le mot de passe est faible? Vulnérable.

    • Captcha, Timeout, NoScript (with) ABE


    SURPRISE?


    • Machine virtuelle
    • Hébergée sur VulnHub
    • Vous devez exploiter (entre autre) une vulnérabilité CSRF...


    Bon courage!




    Questions ?


    Code sur GitHub: https://github.com/PaulSec/CSRFT/