Quando si parla di scripting cross-site, la cosa più importante è il contesto. Il contesto in cui viene riflesso o memorizzato. Lo dimostrerò con un esempio reale della mia esperienza. Una volta mentre cercavo bug, ho notato che un parametro URL si rifletteva all'interno di una variabile:
http://www.example.com/blah.php?id=test&var=101011
Il valore di var si rifletteva nell'origine della pagina al caricamento della pagina, approssimativamente nel seguente formato, all'interno di un blocco di script:
var a = "101011";
e iniettando tanto quanto un '<' avrebbe deviato la richiesta al WAF che avrebbe generato una pagina di errore, quindi il mio carico utile effettivo era:
prompt(1)";eval(a);
che ha aggirato il WAF ed è diventato un caso di successo di XSS riflesso. Quindi, il carico utile dovrebbe essere modificato in base al contesto e potresti non aver bisogno dei tag. Spero che questo ci abbia aiutato.