Perché questa sfida XSS richiede che% 0A funzioni?

2

Mi sono imbattuto in questa sfida XSS di hack.me .

La soluzione a questa sfida è:

javascript://%0Aalert(1)

Sono confuso con %0A . Perché non funziona con questo carico utile?

javascript://alert(1) 
    
posta Abdullah 16.09.2017 - 01:19
fonte

1 risposta

5

È necessario terminare un commento Javascript

La sfida applica un formato di collegamento lungo le linee di [a-z]*://.* . Qui, l'idea è di iniettare JS tramite lo pseudo protocollo javascript: . Quindi, per aderire al formato del link, devi iniziare la sequenza con javascript:// .

Ma poiché tutto ciò che sta dietro il colon viene interpretato come JS, si verifica un problema: // introduce un commento a riga singola in JS, quindi tutto ciò che viene dopo verrà commentato fino a quando non viene visualizzato un carattere di nuova riga. Questo non farà nulla:

//alert(1)

%0a è la versione con codifica URL di una nuova riga ASCII, quindi il tuo payload diventa effettivamente questo:

//
alert(1)
    
risposta data 16.09.2017 - 02:04
fonte

Leggi altre domande sui tag