Uno dei modi, XSS può essere sfruttato, è quello di utilizzare il seguente tag:
"><script>alert(document.cookie)</script>
Qui, qual è il significato di ">
prima dello script (tag <script>
) e perché viene usato?
In questo modo sfuggi a un attributo con doppia citazione ( "
) e chiudi il tag precedente ( >
) prima di aprire un tag script che contiene il tuo payload. È uno dei modelli XSS più basilari.
Esempio:
<input type="text" value="$XSS">
Con la tua sequenza diventa:
<input type="text" value=""><script>alert(document.cookie)</script>"> ^- a completed tag ^- payload garbage -^
Nota che il tuo vettore funziona solo se le entità HTML non sono filtrate.
Quindi, se non puoi sfuggire a quell'attributo, è sicuro per XSS. Questo non si attiva:
<input type="text" value="<script>alert(document.cookie)</script>">
Puoi vedere la stessa idea con XSS all'interno di Javascript (ad esempio ');
per terminare una stringa e una chiamata di funzione) o con iniezioni SQL. I primi caratteri di una sequenza di iniezione spesso hanno lo scopo di sfuggire al contesto corrente.
Per quanto riguarda la sequenza xkcd dell'iniezione SQL di @ Mindwin, ho disegnato a mano libera la parte a cui mi riferisco:
Leggi altre domande sui tag xss