Vulnérabilité XSS HTML

Fermé
lynow Messages postés 22 Date d'inscription jeudi 18 mars 2021 Statut Membre Dernière intervention 28 juin 2023 - 10 févr. 2023 à 09:29
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 10 févr. 2023 à 13:41

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 ?

A voir également:

2 réponses

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
10 févr. 2023 à 11:26

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.


1
lynow Messages postés 22 Date d'inscription jeudi 18 mars 2021 Statut Membre Dernière intervention 28 juin 2023
10 févr. 2023 à 11:36

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 ?

0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > lynow Messages postés 22 Date d'inscription jeudi 18 mars 2021 Statut Membre Dernière intervention 28 juin 2023
10 févr. 2023 à 12:12

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 ...

0
lynow Messages postés 22 Date d'inscription jeudi 18 mars 2021 Statut Membre Dernière intervention 28 juin 2023 > jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024
Modifié le 10 févr. 2023 à 12:27

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

0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
10 févr. 2023 à 13:41

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.

1