Vulnérabilité XSS HTML
avion-f16 Messages postés 19252 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai récemment développé un site web qui était pour moi opérationnel ^^
Cependant, quelqu'un est venu tenter des injections et à trouver une faille XSS.
J'ai un formulaire de ce type :
<h2> <span>Recherche</span> </h2> <div class "col-xs-12"> <input id="in" type="text" name="in" value="" required="" placeholder="value"> </div>
Lorsqu'il entre
"><script>alert(1)</script>
dans le formulaire, cela modifie mon HTML comme ceci :
<h2> <span>Recherche</span> </h2> <div class "col-xs-12"> <input id="in" type="text" name="in" value="\"> <script>alert(1)</script> " required placeholder="value"> </div>
Et cela m'affiche la fameuse pop-up avec la valeur 1.
Étant débutant, je n'arrive pas à voir comment cela peut poser danger, étant donné que l'attaquant ne peut qu'exécuter son script de son côté client, non ?
Ou alors il peut exécuter du code qui permet d'accéder à ma base de donnée ?
Ensuite, quel est le meilleur moyen pour prévenir ce type d'attaque ?
- Vulnérabilité XSS HTML
- Editeur html - Télécharger - HTML
- Espace html ✓ - Forum HTML
- [**] Balise pour un espace vide en hml. Merci ✓ - Forum Webmastering
- /Var/www/html/index.html ✓ - Forum Linux / Unix
- Html download - Télécharger - HTML
2 réponses
Bonjour,
Je suppose que tu as du code côté serveur ( du php ? )
Et donc, que dans le code source de ton site, tu dois récupérer la données entrée dans ton input pour la stocker en BDD ou à minima la réafficher dans ton champ. Il faut donc, pour l'affichage, ajouter du htmlspecialchars pour éviter cela.
https://www.php.net/manual/en/function.htmlspecialchars.php
Si tu n'utilises pas de php, il doit y avoir des équivalents dans le langage que tu utilises.
Mais sans plus d'explications de ta part concernant le code utilisé pour la création de ton site, impossible de te dire mieux.
Bonjour,
L'attaquant peut créer une page malicieuse qu'il héberge lui-même, qui contient un formulaire avec la même cible que le tiens, et le input avec avec un code malicieux. Le formulaire sera soumis automatiquement par JavaScript.
La victime qui accederait à cette page malicieuse, via un lien communiqué par l'attaquant, sera alors rédigée vers ton site et les données POST seront peuplées par ce que l'attaquant aura choisi.
Le script malicieux peut être un JS qui lit le cookie de session et le transmet à l'attaquant.
Une protection contre cela est le jeton CRSF ainsi que une vérification du referer.
Bonjour, merci pour ta réponse. Effectivement, j'ai pu voir sur de nombreux sites les méthodes de prévention contre ces attaques.
Mon sujet aurait dû être formulée uniquement sur la première question, quels sont les risques via un formulaire ?
J'aimerais, avant d'envisager de modifier le code pour me protéger des attaques XSS, pouvoir comprendre ce que l'attaquant serait capable de faire hormis juste afficher une alerte sur sa propre session ?
Je me suis un peu renseigné, je ne vois que le cas de phishing, où l'attaquant pourrait envoyé un lien du site avec la requête POST correspondante, à un client. Dans ce cas, je comprends le risque. Mais, il y en a t-il d'autres ?
Tout dépend de ce que tu fais des données du formulaire ensuite.
Si tu t'en sers dans des requêtes SQL, par exemple, il pourrait essayer de "hacker" la requête pour sortir la liste de tous les users de ta bdd ...
Sans vraiment parler des données du formulaire, car ceci est un autre cas d'injection.
Je parle vraiment du cas ci-dessus, où il arrive a exécuter du code "en dehors" du formulaire justement. Est-ce qu'il peut récupérer des données de base de données via un code HTML ou Javascript par exemple ?
PS : je ne suis peut être pas clair et m'en excuse le cas échéant, n'hésitez pas à me reprendre