Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème pour trouver des failles xss

    21 mai 2018 à 23:33:45

    Bonjour, Bonsoir,

    Je commence la programmation en C# depuis plus d'une semaine,

    et pour m’entraîner je me suis donner comme objectif de crée un logiciel qui détecte les failles de sécurités (seulement les failles XSS)

    au début je me suis documenter sur les failles XSS ici et coder comme ceci ("util.Erreur" est une fonction qui envoie un message d'erreur)

    string codeHtml = client.DownloadString(www.siteweb.com);
    index = codeHtml.IndexOf("FAILLE XSS");
                    if (index == -1) { util.Erreur(3, "XSS"); }
                    else { util.Valid(); Console.WriteLine(": faille de sécurité trouvé ligne " + index + " (\"SQL\")"); }

    Bon bah le premier problème c'est qu'une faille XSS c'est pas juste détecter si il y'a un morceau de code précis.

    De plus il y'a les noms des variables qui peuvent fausser la recherche.

    Je suis allez chercher un peu sur internet j'ai pas trouvé quelque chose ou une méthode qui pourrait m'aider. 

    Je cherche soit un moyen de rechercher un string en particulier qui pourrait contenir des mots pas précisé.

    Après je pense que je n'ai cas vérifier si il n'y as pas du code qui protège la faille pour pas que le programme me donne une fausse alerte.

    En gros par exemple que ces deux codes soit trouvé par ma fonction, si il n'y as pas de protection sur ces variables, (htmlspecialchars)

    <input type="texte" name="pseudo" />
    
    <input type="user" name="password" />

    Ou alors vous avez peut t'être une autre méthode que j'ai pas et qui serait plus simple.

    Merci d'avance pour votre aide.

    - Cordialement.



    -
    Edité par TheDarknessGhostLeGameur 22 mai 2018 à 0:10:19

    • Partager sur Facebook
    • Partager sur Twitter
      22 mai 2018 à 13:08:36

      C'est pas vraiment un sujet super simple amha.

      L'idée de la faille XSS, c'est de réussir à faire exécuter un bloc de code depuis une page web, sur un site qui ne t'appartient pas mais qui pourrait être visité par d'autres. Tu n'as théoriquement pas la main sur le serveur qui héberge ledit site web.

      Déjà ça, c'est une première problématique. Si tu connais pas le serveur de traitement, tu peux difficilement "savoir" si le système est protégé ou non (ça c'est le but de ton outil justement) et si il l'est, comment il l'est. Par exemple, certains site pourraient simplement remplacer les caractères utilisés pour décrire des pages web (du HTML entre autre) par leurs entités HTML équivalentes...D'autre site pourrait simplement supprimer tout ce qui n'est pas autorisé. Rien que là, ton outil devrait être capable de savoir analyser les 2 types. Ensuite, si ton but c'est de savoir traiter toute forme d'injection, tu n'auras jamais fini. Il a peu près autant de façon de pirater un site que de site existant sur la toile...Certaines façons de faire se retrouvent d'un site à l'autre cela dit (parce qu'il utilise un framework ou un système web tout fait - Drupal, Django, ... - qui présenteront probablement les même failles).

      "Le plus simple" (pour t'entrainer) serait déjà de restreindre ton scope de faille à une injection simple (exemple : Si sur un champs, tu te contente de mettre <javascript type='text/javascript'>window.alert('UnSuperHashCodeGenreNewGuid().ToString()');</javascript> et qu'en réponse du serveur, tu retrouve exactement ce texte saisi, il y a une faille.

      Ensuite, si tu veux aller plus loin, tu pourrais tenter ce même comportement mais pour traiter le 2eme type de faille XSS indiqué dans ton lien : les failles permanente. Ce point sous-entend que la faille - si elle existe - ne se trouveras pas nécessairement dans la réponse à ta requête immédiate...Ce qui nécessite que ton outil soit capable de détecter toutes les routes HTTP permettant de joindre le site, et qu'il y effectue la recherche dans chacune d'elle.

      Quoiqu'il en soit...Le Contains/IndexOf d'un String, c'est utile pour aller vite, mais pas très poussé. .NET propose une implémentation des expressions régulières. Je ne vais pas refaire une présentation de ce que c'est, mais avec ça, malgré la barbarie syntaxique de ces bestiole, tu devrais pouvoir faire des tests d'injection beaucoup plus poussés.

      Note : Je ne doute pas qu'il existe des outils similaires au tient...Mais la découverte de faille, c'est un métier entier, probablement pas pour rien ^^ . Certaines entreprises font appel à des boites externes pour réaliser des "pen-tests" (tests de pénétration) où le but, c'est de mettre à l'épreuve la sécurisation des SI de l'entreprise.

      -
      Edité par Nisnor 22 mai 2018 à 13:14:37

      • Partager sur Facebook
      • Partager sur Twitter
        22 mai 2018 à 14:12:40

        Ok, Merci de ta réponse !

        je vais essayer ce que tu propose pour m’entraîner vue la galère que tu me décris pour faire mon projet ^^'

        • Partager sur Facebook
        • Partager sur Twitter

        Problème pour trouver des failles xss

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown