È difficile trovare un vettore senza avere l'effettiva vulnerabilità di fronte a me, ma in passato, quando ho affrontato tali problemi, sono passato al modo non alfanumerico di sfruttarlo. Questo blog ha un'ottima descrizione di come è fatto. Alcuni vettori sono presenti in questo pastie .
Immagino che tu abbia un modo per eseguire gli script, ma hai solo bisogno del payload corretto da eseguire. Dal blog di cui sopra:
Since JavaScript has two different syntactic forms to access properties, you can access an Object method like a dictionary:
object.method(arguments) === object["method"](arguments)
Quindi, con questo metodo, il tuo carico utile potrebbe essere qualcosa del tipo:
this["alert"]("xss")
Se vuoi estrarre il cookie, puoi anche usare
this["alert"](this["document"]["cookie"])
L'utilizzo di uno di questi metodi dovrebbe probabilmente farti ottenere l'esecuzione del codice che stai cercando. Questi non hanno spazi o barre - pensavo avresti ancora bisogno di essere all'interno di un attributo di qualche tipo, o dovresti avere la possibilità di includerlo in <script>
tag. In alcuni browser, potresti provare qualcosa come <script>{your vector}<script>
, e potrebbe funzionare (ricordo che ha funzionato per me su IE qualche tempo fa)
EDIT: se questo è solo un proof of concept per una vulnerabilità di validazione dell'input, potresti anche incorporare un iFrame. Di nuovo, a seconda del browser, iFrame non hanno bisogno di tag di chiusura. quindi <iframe\src='www.google.com'>
potrebbe semplicemente fare il lavoro.