Senza precondizioni speciali (codec insoliti, ecc.), <p>$XSS</p>
è vulnerabile a XSS solo se sono consentite le parentesi angolari di apertura.
Senza creare un tag, non è possibile inserire contenuti significativi per il parser HTML del browser. Tutto il resto, incluso l'unicode di fantasia, viene semplicemente considerato come semplice dato. Tuttavia, è possibile formulare ipotesi su come il server affronti i dati per ottenere ancora XSS. Ad esempio, forse il server converte <
(FULLWIDTH LESS-THAN SIGN U+FF1C
) in una vera parentesi angolare sulla strada, o forse <
viene riconvertito in <
per qualche strana ragione - L'ho incontrato in natura, ma non vi è alcuna indicazione che questi trucchi potrebbero funzionare nel tuo caso.
XSS doesn't seem to be an option with the bracket filter, but it seems like, since it is unfiltered, there should be some way to exploit it.
Quali altre vulnerabilità del lato client ti aspetti di incontrare qui? Oltre a XSS, mantenere i caratteri Unicode è spesso richiesto per la localizzazione e non causa alcun evidente problema di sicurezza quando viene stampato in un corpo HTML.
Detto questo, consentire l'Unicode arbitrario può essere abbastanza fastidioso (PoC: ก็็็็็็็็็็็็็็็็็็็็ &) che è il motivo per cui molti siti Web sociali (ad es. Facebook, Twitter) limitano i caratteri consentiti. Ecco come viene visualizzato in Firefox: