Ho trovato il seguente codice JS in più applicazioni web. Penso che la ragione della popolarità di questo snippet di codice sia questa risposta accettata su SO . Gli sviluppatori sembrano utilizzare questo codice per molte schede del menu di commutazione:
var url = document.location.toString();
if (url.match('#')) {
$('.nav-tabs a[href="#' + url.split('#')[1] + '"]').tab('show');
}
In pratica legge da document.location
e passa qualsiasi cosa dopo un #
a $()
senza alcun sistema igienico-sanitario.
Anche lo Scanner attivo di Burp Suite lo segnala come un vero positivo.
Ho provato a sfruttarlo, ma mi sembra un falso positivo. La mia ipotesi è che dal momento che JS sta convertendo l'URL come una stringa, qualsiasi payload (inclusi i caratteri speciali) verrà considerato come una stringa.
Pubblicare questo qui solo per essere sicuro che voi ragazzi potete pensare ad altro modo per sfruttarlo per creare un XSS basato su DOM?