Archives Wild Code School
Sécurité Web

3.1 [Basics] Attaques XSS : découvrir

Quête 5 sur 8

Découvre les attaques Cross-Site-Scripting (XSS), une menace qui arrive septième dans le classement des failles les plus répandues sur le web, et face à laquelle près de 50 % des sites web actuels sont encore vulnérables.

Objectifs

  • Savoir expliquer le principe général d'une attaque XSS
  • Reconnaître des failles XSS potentielles basiques dans un code
  • Être capable de mener une attaque XSS simple

Spoiler is coming

Printemps 2019.

Alors que le monde entier a les yeux tournés vers le Mur et l'hiver qui arrive, tu regardes ton sac de randonnée et te dis que tu as toujours eu le chic pour choisir les mauvais timings.

_Source : Reymark Franke on _Unsplash

Certes, quelques ondes de 3G t'atteignent parfois, dans la forêt du bout du monde où tu te trouves, mais pas assez pour réussir à visionner un épisode : non, juste assez pour te faire spoiler sur tous les réseaux sociaux de l'univers.

_Source : _https://funnyjunk.com/Facebook+4+spoiler+alert/funny-pictures/5170389

Excédé·e et en manque de programmation (avouons-le : la nature, c'est bien, mais le code, c'est beau), tu décides de sublimer ton désarroi existentiel en créant un réseau social alternatif où la règle principale serait de ne jamais divulgacher une série. Fier·ère de ton idée, tu profites d'une visioconférence pour montrer ton projet, entre deux déconnexions-reconnexions tremblotantes, à ton interlocuteur préféré : ta mamie, alias darkMereGrand_93, cruciverbiste le jour et hacktiviste la nuit.

En examinant ton code source, darkMereGrand_93 lève ses lunettes double foyer au ciel et te demande si tu as déjà entendu parler du computer worm Samy et de Myspace.

Pour comprendre ce que raconte ton aïeule, rendez-vous à l'étape suivante !

↗
OPTIONNEL - Pirater Game of Thrones en torrent, c’est prendre plus de risques qu’avec d’autres séries

Un peu de culture générale pour les cinéphiles du lundi matin.

numerama.com

L'attaque XSS qui a cassé Myspace

_Source : _Flickr

L'attaque XSS la plus connue à ce jour a été réalisée en 2005 par Samy Kamkar sur le site Myspace. Et c'est lui qui en parle le mieux : regarde cette vidéo pour en apprendre plus.

↗
OPTIONNEL - Greatest Moments in Hacking History: Samy Kamkar Takes Down Myspace

Interview de Samy Kamkar, pour en savoir plus sur l'attaque de Myspace en cinq minutes.

youtube.com

Qu'est-ce qu'une attaque XSS ?

Principe général

Le Cross-Site-Scripting (XSS) est une attaque (dans le monde du hacking, on parle aussi d'exploit) qui permet à un·e pirate d'injecter du code malveillant dans un site web.

Regarde l'histoire de Bob, Alice et le vilain Mel pour observer une attaque en action.

Les attaques XSS utilisent un environnement que tu connais bien en tant que (future·e) développeur·euse, puisqu'il s'agit de la base de tout site web : le HTML, le CSS et, surtout, le JavaScript.

Un peu d'histoire : le terme de Cross-Site-Scripting vient du fait que les premières attaques XSS utilisaient des scripts hébergés sur un site malveillant et injectés dans un site victime, d'où l'idée de croisement entre deux sites différents.

Afin de te faire une idée des vecteurs qui peuvent être utilisés pour une attaque XSS, consulte quelques exemples réels : https://brightsec.com/blog/xss-attack/

Quels sont les buts d'une attaque XSS ?

En voici un descriptif général qui démontre les possibilités : https://portswigger.net/web-security/cross-site-scripting

OWASP

L'Open Web Application Security Project (OWASP) est une organisation mondiale référente en matière de cyber-sécurité. Au cours de ta carrière, ce sera ta source de doc privilégiée en ce qui concerne les attaques et leur prévention !

Histoire de faire connaissance, tu peux survoler (sans t'attarder) ce cheat sheet qui répertorie une immense variété de payloads XSS possibles.

↗
OPTIONNEL - OWASP - XSS cheatsheet

Une liste très complète de payloads possibles.

cheatsheetseries.owasp.org
↗
ESSENTIEL - XSS - Cross Site Scripting Explained

L'histoire de Bob, Alice et le vilain Mel (exemple d'une attaque XSS stockée).

youtube.com

Challenge

A l'abordage !

Alerté par darkMereGrand_93, ta mamie hacktiviste, sur les risques d'attaques XSS, tu décides de lui prouver ta valeur en participant au XSS game proposé par Google.

  1. Trouve les réponses aux challenges 1 et 2.
  2. Inscris tes réponses dans un gist (ex : Challenge 1 : <a href=alert("blop")>, Challenge 2 : <blop src="bip.png" onblop=alert("blop")>).NB : oui, les exemples donnés ici n'ont aucun sens :)
  3. Partage le lien de ton gist en guise de solution au challenge.

Critères de validation

  • Ouvrir XSS Game dans une fenêtre de navigation privée. Pour chaque challenge, copier-coller les réponses fournies. Le challenge doit être résolu par la réponse collée.
  • Les deux challenges doivent être résolus par les réponses de l'élève.

Ressources partagées sur cette quête