vmontagn.fr

devblog

Comprendre et détecter des failles XSS



Le cross site scripting (abrégé en XSS, le X se lisant “cross”) est une faille de sécurité web permettant d’injecter du contenu a l’insus de l’utilisateur dans la page web pour permettre aux navigateurs visitant sur la page de faire des actions spécifiques. Avec cette faille, Il est par exemple possible de rediriger vers un autre site pour de l’hameçonnage ou encore de voler la session en récupérant les cookies.

Le XSS fait partis du top 10 des risques les plus critiques pour la sécurité des applications Web définis par Open Web Application Security Project (OWASP) en 2017, il est donc important d’être conscient de l’existence de ce type de faille pour éviter d’en avoir sur ses propres applications web.

La detection de faille

La détection de la faille se fait simplement en essayant d’injecter des donnée arbitraire dans un site web, par le remplissage d’un formulaire, ou en modifiant les paramètres d’URL. Si ces données sont transmise sans avoir été vérifiées par le serveur, alors il existe une potentiel faille : on peut s’en servir pour faire exécuter du code malveillant en JavaScript par le navigateur web d’un utilisateur cible.

La balise pour exécuter une faille XSS la plus simple est :

<script>alert(1)</script>

xxs-demo
[image: https://www.securitydrops.com/360-xss/]

Quels sont les risques ?

La première évoqué plus tôt est l'hameçonnage, ou plus précisément, la redirection de l’utilisateur vers un autre site dans le but d’usurper son identité . L’objectif de récupérer des informations personnels de l’utilisateur en lui faisant remplir de faux documents ou de faux formulaire sur des site étant des copies conforme de d’autres sites.

La seconde, est la récupération de cookie et de sessions, pour permettre à l’attaquant de se faire passer pour l’utilisateur cible sur le site en question.

La dernière, qui va de pair avec la précédente, est d'exécuter des actions sur le site pour permettre soit de piéger d’autre utilisateur depuis une messagerie interne au site, la suppression d’informations…

Les types de faille XSS

Il existe trois types de faille XSS principale:

-> La faille XSS permanente, qui est la plus dangereuse, elle est principalement présente sur des site web de type “Livre d’or”. La faille XSS est sauvegarder sur le serveur et apparaît à chaque fois qu’un utilisateur essaie d’atteindre la page du serveur. Cette faille peut se trouver, par exemple, sur des formulaire de recherche.

-> La faille XSS non permanent, est la même que la faille XSS permanent, la différence est que le contenu de la faille est envoyé depuis un lien spécifique.

-> Le Self-XSS, l’attaquant doit faire du social engineering pour demander à l’utilisateur d’injecter lui même le script dans la page, la faille self-XSS la plus célèbre est de rentrer un script dans la console facebook pour “pirater” le compte de quelqu’un.

Comment se proteger ?

Le meilleur moyen, en temps que développeur, d’éviter d’avoir une faille XSS sur son site, est de ne jamais faire confiance aux données envoyer par l’utilisateur au serveur, il faut toujours implémenter une vérification des informations avant de les sauvegarder ou avant de les afficher à l’utilisateur.

L’utilisation d’un moteur de template connu permet de réduire drastiquement les risques.