XSS nel tag title HTML senza barra diretta

5

Sto cercando di scoprire se questo è vulnerabile contro XSS: posso controllare il contenuto del tag title attraverso l'URL. Ciò renderebbe il sito vulnerabile se non fosse per il fatto che il sito prende il testo solo fino alla prima barra in avanti, rendendo apparentemente impossibile chiudere il tag title . Ho già provato % 2F , ma il server sembra convertirlo in una barra e quindi tagliare l'input lì. Questo è probabilmente mod_rewrite , ma senza AllowEncodedSlashes .

Esempio: domain.com/subfolder/myXss</title>bla porterà a ... < title > myXss < < / title >

Quindi la mia domanda è se uno di questi due è possibile:

  • Posso codificare una barra in qualche modo?
  • Posso in qualche modo chiudere il tag title o inserire codice dannoso nel tag del titolo? Non posso semplicemente inserire script , poiché non è consentito nient'altro all'interno del tag title .
posta Philipp F 30.05.2014 - 15:14
fonte

2 risposte

1

All'interno di un tag <title> HTML5, non è possibile iniettare nuovi elementi senza consentire barre.

Poiché il parser HTML del tuo browser è una macchina a stati, puoi semplicemente seguire le transizioni di stato del tokenizer (per Specifica della sintassi HTML ) e vedi quanto sei lontano.

Nel tuo caso, un tag <title> nella sezione principale evoca l ' algoritmo di analisi degli elementi RCDATA generico ". Dallo stato RCDATA , ogni parentesi aperta viene ignorata a meno che tu non stia chiudendo l'ultima volta tag aperto. Quindi l'unica continuazione che non verrà trattata come testo non elaborato è la sequenza letterale </title> . E poiché quella stringa contiene una barra, non sarà possibile alcun XSS. (Questo comportamento è simile ad altri elementi come <textarea> ).

La mia risposta qui ha una descrizione un po 'più dettagliata di come il tokenizer può aiutarti a ragionare sul possibile XSS.

Can i encode a forward slash in some other way?

Il parser HTML accetta solo un% letterale/ ( 0x2f ). Se ti stai chiedendo in che modo l'applicazione web potrebbe essere ingannata nella stampa di una barra, questa sarebbe pura speculazione in quanto dipende dall'implementazione dell'app Web.

    
risposta data 31.05.2016 - 02:46
fonte
0

Puoi provare un sacco di cose dipende da cosa sta facendo il server. Doppia codifica, codifica esadecimale. Se guardassi a questo il mio primo pensiero sarebbe come posso farlo senza un backslash.

Il tag title non ha bisogno di essere chiuso, devi solo essere in grado di entrare nel contesto javascript.

In altre parole saresti in grado di inserire      script alert (xss) / script (non mi consente di aggiungere i tag di script di apertura e di chiusura) e verrebbe eseguito se la barra fosse consentita, non avresti bisogno di chiudere il tag html.

Che ne dici di qualcosa di simile     % 3Csvg% 20onload%% 22alert 3D (% 27xss% 27)% 22% 3E

    
risposta data 31.03.2016 - 22:48
fonte

Leggi altre domande sui tag