XSS riflesso nel blocco di script multilinea

0

Sto cercando di sfruttare uno script cross site riflesso in una richiesta GET in cui il riflesso si trova nel primo blocco di script a più righe.

Sembra che io possa usare ogni carattere tranne < , > e " e il miglior carico utile che potrei inventare è /?search='}]%3Balert(1)%3B%2F%2F

E si riflette così:

<head><script> dataLayer = [{ 'pageType': 'Page', 'category': 'Search', 'searchTerm': ''}];alert(1);//', 'searchResults': '0', }]; </script>

Purtroppo questo non funziona. Né lo fa con / * anziché // per commentare il resto del blocco di script. C'è un modo per farlo funzionare senza usare "<" e ">"? Ora fallisce con "SyntaxError: Token inaspettato: ':'"

    
posta 6661620a 15.11.2018 - 03:27
fonte

1 risposta

2

Non è necessario commentare nulla.

Usa:

/?search='-alert()-'

JS tenterà di creare la stringa del termine di ricerca dall'espressione '' - alert() - '' che attiverà la funzione alert . Preferisco - a + perché evita potenziali problemi con la codifica URL ed è raramente nella lista nera, ma puoi anche utilizzare qualsiasi altro operatore binario per spremere il tuo payload senza causare un errore di sintassi.

    
risposta data 15.11.2018 - 06:27
fonte

Leggi altre domande sui tag