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