Qu'est-ce que le cross-site scripting (XSS) ?

Imaginez que, tout à coup, vous ne pouvez pas vous connecter à votre boutique en ligne préférée. Qui plus est, quelqu'un publie des commentaires étranges en votre nom et passe des commandes. Vous vous souvenez de la fois où vous avez cliqué sur un lien dans la section des commentaires d'un site Web pour consulter cette veste que quelqu'un vous avait recommandée ? Il apparaît que vous avez été confronté à une attaque de cross-site scripting (ou XSS). Lisez le contenu ci-dessous pour comprendre sa dangerosité et pourquoi il est si facile d'en être victime.

Qu'est-ce que le cross-site scripting

Une attaque par cross-site scripting (ou XSS) se produit lorsqu'un pirate informatique insère un code malveillant dans un site Web ou une application normalement fiable. Il exploite les faiblesses du HTML, du JavaScript ou de tout autre langage pris en charge par un navigateur. Ce type de code fonctionne du côté client plutôt que du côté serveur, il n'endommage donc pas directement le site Web, il cible plutôt les utilisateurs. Selon le type de XSS, les utilisateurs peuvent activer le code malveillant en cliquant sur un lien ou en visitant un site Web compromis.

Une fois lancée, une attaque cross-site scripting peut entraîner la fuite d'un grand nombre de données d'utilisateurs vers des pirates, introduire un cheval de Troie, effectuer des redirections malveillantes, usurper l'identité des utilisateurs en volant leurs informations d'identification, etc.

Types de cross-site scripting

XSS réfléchi

Le XSS réfléchi a lieu lorsqu'un utilisateur clique sur un lien malveillant vers un site Web vulnérable. La page Web renvoie ensuite le script au navigateur de la victime, qui l'exécute. Un cybercriminel peut alors détourner les cookies de session de l'utilisateur et voler ses données d'autorisation.

Un site Web peut ne pas correctement filtrer les requêtes entrantes, ce qui permet aux cybercriminels d'injecter des scripts malveillants dans un lien. Ses propriétaires peuvent également ne pas être conscients que quelqu'un utilise leur site à de telles fins.

Par exemple, Mary a une boutique en ligne, que Jane utilise beaucoup. Jane se connecte au site en saisissant son nom d'utilisateur et son mot de passe, qui sont stockés dans un cookie d'autorisation. Tom est le méchant de l'histoire. Il découvre que le site Web de Mary contient une vulnérabilité, alors il crée une URL malveillante et l'envoie à Jane dans un e-mail déguisé en offre attrayante. Jane clique sur le lien et exécute le script. Le script infecte ensuite le navigateur de Jane et envoie à Tom toutes les données de connexion associées au cookie de connexion du site Web. Tom peut se connecter à la boutique en ligne en tant qu'Alice, voler ses informations de facturation et modifier les mots de passe.

XSS stocké

Dans le cas d'un XSS stocké, les pirates ne se contentent pas d'injecter un script malveillant dans un lien unique, ils le placent sur le serveur d'un site Web. Ils cachent le script dans une section spécifique du site, où il peut se dissimuler pendant un temps indéfini (par exemple, la section des commentaires). Ainsi, lorsque les utilisateurs accèdent à cette section, les pirates peuvent obtenir toutes leurs informations d'identification associées à cette session. Si une attaque réfléchie évoque une partie de pêche à la ligne, une opération XSS stockée se rapproche davantage de la pêche au filet par sa capacité à affecter beaucoup plus d'utilisateurs.

Par exemple, Alice découvre une vulnérabilité sur le site Web de John et injecte une balise HTML malveillante dans sa section de commentaires. La balise restera là. Désormais, lorsque les visiteurs se rendent dans la section des commentaires, la balise active le script du pirate hébergé sur un autre site Web. Elle envoie à Alice toutes les données de leurs cookies d'autorisation. Elle peut ensuite se connecter au site et se faire passer pour chaque utilisateur compromis.

XSS basé sur le DOM

Lorsque vous chargez un site Web, votre navigateur crée un modèle objet de document (ou DOM) de la page. Il agit comme un intermédiaire entre la page HTML et JavaScript, ce qui rend la page dynamique et facile à modifier. Dans le cas du XSS basé sur le DOM, le code JavaScript compromis écrit les données dans le DOM. Tout comme dans le XSS réfléchi, un utilisateur l'initie en cliquant sur un lien compromis. Dans ce cas, les pirates cachent le code malveillant bien plus profondément dans le code, de sorte qu'il ne peut pas être tracé en vérifiant simplement l'URL. Vous devrez vérifier le code du site Web pour l'identifier.

Self-XSS

L'attaque self-XSS ne repose pas sur un site Web vulnérable. Au lieu de cela, elle incite les utilisateurs à injecter un script malveillant dans leur propre navigateur. Les cybercriminels utilisent généralement des tactiques d{link1} pour parvenir à cela. Par exemple, ils peuvent persuader un utilisateur de saisir un code dans son navigateur en lui promettant que cela lui permettra daccéder à un autre compte offrant des avantages supplémentaires. Cependant, cela permet simplement au pirate de voler le compte de la victime.

Prévention contre le cross-site scripting

Les attaques XSS sont bien cachées au niveau du code, de sorte que vous pourriez ne pas les remarquer pendant très longtemps. Pire encore, les propriétaires de sites Web vulnérables identifient souvent les XSS bien trop tard. Toutefois, comme toujours, il existe certaines mesures pour les éviter :

  • Utilisez toujours les logiciels de sécurité les plus récents et les plus fiables, qui peuvent vous empêcher automatiquement d'accéder aux sites Web malveillants ;

  • Mettez toujours à jour votre navigateur pour vous assurer que vous utilisez la dernière version. Assurez-vous que votre navigateur dispose de fonctionnalités de sécurité anti-XSS ;

  • N'ouvrez pas de liens suspects, même s'ils semblent légitimes à première vue. Vérifiez toujours soigneusement l'URL pour voir s'il n'y a rien d'anormal ;

  • Contactez toujours les personnes responsables d'un site Web si vous remarquez quelque chose de suspect (par exemple, vous ne pouvez pas vous connecter avec vos informations d'identification habituelles, vous voyez des achats que vous n'avez pas effectués, etc.)

S’abonner aux actualités de NordPass

Recevez les dernières actualités et astuces de NordPass directement dans votre boîte de réception.