Posso XSS una pagina che filtra &, ", e caratteri e ha Content-Type impostato su UTF-8?

1

Sto cercando di realizzare un blog fittizio con un modulo con un input TEXTAREA su una pagina.
Quando il modulo viene inviato, i contenuti del modulo vengono visualizzati in una seconda pagina.

Tuttavia, la seconda pagina che riceve l'input POST, la filtra per sostituire " , < , > e & con &quot , &lt; , &gt; e &amp; .

Anche la seconda pagina ha un:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />


Ho usato Fiddler per intercettare il POST dalla prima pagina e modificato l'intestazione della richiesta da
Content-Type: application/x-www-form-urlencoded
a:
Content-Type: application/x-www-form-urlencoded; charset=UTF-7

E cambiato il contenuto POSTed in:
+ADw-/font+AD4APA-script+AD4-alert(document.cookie)+ADw-/script+AD4

Sperando che decodifichi a:
</font><script>alert(document.cookie)</script>

Tuttavia, non ha fatto nulla e il testo è apparso così com'è. Inoltre, la codifica del testo della seconda pagina è stata riconosciuta come UTF-8. Immagino sia perché ha un meta tag nel suo HTML con il set di caratteri impostato su UTF-8.

Voglio sapere se c'è un modo in cui questa pagina può essere sfruttata tramite XSS e se esiste, quale sarebbe il vettore di input?

    
posta Vinayak 08.08.2014 - 07:25
fonte

1 risposta

3

Le regole di codifica sperimentali minime OWASP XSS suggeriscono che tutto ciò che deve essere codificato sono < , & e > , purché sia specificato il set di caratteri.

Supponendo che gli output della seconda pagina all'interno di un contesto HTML, in questo caso non sembra essere un vettore di attacco XSS.

Impostare il charset e quindi codificare il tuo POST significherà semplicemente che il server lo interpreterà come tale, convertendo qualsiasi testo nella sua propria rappresentazione interna (supponendo che non ci siano difetti nello stack tecnologico utilizzato dal sito e che tutto funzioni correttamente ). Quindi, quando viene emesso, i caratteri verranno nuovamente codificati, il che significa che il tuo attacco fallisce.

    
risposta data 08.08.2014 - 09:55
fonte

Leggi altre domande sui tag