Cosa ci impedisce di usare un tag antiscript per fermare XSS?

2

Sono a conoscenza di vari modi per prevenire gli attacchi XSS, come l'escaping e la codifica, che sono soggetti a problemi e che utilizzano una politica di sicurezza dei contenuti che richiede l'estrazione di tutti gli script. Tuttavia, ciò che ci preoccupa ci impedisce di utilizzare un tag html come <antiscript> per impedire al browser di eseguire qualsiasi script sotto questo elemento nell'albero DOM, sia direttamente dichiarato con <script> o come attributo di tag come onmouseover , all'interno di questi tag? A prima vista, sembra piuttosto facile rilevare qualcuno che cerca di uscire da questo contesto non di scripting perché il tag </antiscript> dovrebbe apparire.

    
posta Arcanum 02.09.2018 - 03:24
fonte

1 risposta

1

Non credo che sarebbe di grande aiuto.

Se ho capito bene, stai proponendo uno schema come questo:

<antiscript>
    <a>"$user-supplied-input"</a>
</antiscript>

corretta?

Quindi cosa mi impedisce di evadere fornendo l'input:

"</a></antiscript><script>do_something_bad()</script>

in modo che l'origine della pagina sia:

<antiscript>
    <a>""</a></antiscript><script>do_something_bad()</script>"</a>
</antiscript>

La pagina è analizzata, my <script>do_something_bad()</script> non sarà all'interno di <antiscript> </antiscript> nel DOM. (l'HTML che segue sarà danneggiato, ma dal momento che l'HTML analizza dall'alto verso il basso, il mio payload lo farà nel DOM, quindi a chi importa?)

Lo indirizzi nella domanda:

It would be rather easy to detect someone trying to break out of this non-scripting context because the tag would need to appear.

Ma ciò significa che in nessuna circostanza la stringa " </antiscript> " può apparire come testo ovunque su Internet. Sembra un problema Che cosa succede se, ad esempio, volevi scrivere un blog che descrivesse come utilizzare questa funzione?

    
risposta data 02.09.2018 - 03:36
fonte

Leggi altre domande sui tag