Esecuzione del payload XSS quando "http" viene aggiunto al payload

1

Ho un contesto in cui tutti i caratteri speciali sono escapati correttamente tranne ':' e% '/' . L'output è riflesso all'interno del tag <a href="payload" .

1) Quando imposto il carico utile su javascript:alert() (che è l'unico carico utile a cui riesco a pensare in questo contesto), si riflette come <a href="http://javascript:alert(1)"

2) Se il carico utile di input è

javascript://%0aalert(1);//

L'output riflesso è <a href="http://javascript://%0aalert(1);//" e quando si fa clic si apre come http://javascript//%0aalert(1);// .

È possibile bypassare in questo contesto?

    
posta ramailo sathi 11.01.2016 - 22:00
fonte

1 risposta

2

No , se non puoi modificare la parte prima dei due punti, hai sempre la certezza di produrre un URL HTTP, indipendentemente da ciò che aggiungi.

Questo segue l'URI (Uniform Resource Identifier) : sintassi generica RFC 3986 .

Each URI begins with a scheme name [...].

La sintassi della parte dello schema è specificata come segue:

URI  = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
...

Quindi non è possibile l'XSS qui e sei limitato a classi di vulnerabilità relativamente innocue, che si occupano di URL HTTP, come reindirizzamenti aperti o perdite di riferimento - a seconda del tuo scenario.

    
risposta data 11.01.2016 - 22:34
fonte

Leggi altre domande sui tag