Si un campo de entrada acepta% de datos, entonces, ¿cómo se puede decir que existe un riesgo de XSS almacenado?

1

Tengo una aplicación de formularios web ASP.Net (actualizada a framework 4.0) que tiene validación de solicitud en todas las páginas. Alguien que intente una inyección de script (al ingresar algo como <script>location.href=dangerurl;</script> en un cuadro de texto y enviarlo) generará una excepción, ya que la validación de la solicitud de ASP.Net falla para el control de entrada.

En las páginas donde se utilizan los editores HTML (y la validación de la página está DESACTIVADA) el contenido de entrada se desinfecta utilizando la biblioteca antixss.

Pero cuando el sitio fue a revisión externa, señalaron que estos cuadros de texto aceptan texto como <% some text y que se considera que ha almacenado el riesgo de XSS. La combinación de caracteres <% está perdonada por el validador de solicitudes de ASP.Net de alguna manera.

No puedo ver una forma de montar un ataque con estos caracteres <% . ¿Es correcta la observación de los evaluadores externos al decir que existe un mayor riesgo de XSS y, de ser así, cómo se puede crear un vector XSS?

    
pregunta Lin 14.12.2016 - 23:36
fuente

2 respuestas

2

No , imprimir <% en un contexto HTML no lo hace vulnerable a XSS.

Para un ataque XSS, debe permitir una letra después del corchete de apertura, como también se ha explicado aquí . Comenzando solo con <% , no puede construir una carga HTML. Dicho esto, es un poco sospechoso que el filtro XSS no funcionó completamente y filtró los corchetes de apertura seguidos por el carácter cualquiera .

(Posiblemente, los auditores están preocupados por otros vectores de ataque a través de bloques de códigos ASP integrados pero eso no está relacionado con XSS en absoluto.)

    
respondido por el Arminius 15.12.2016 - 00:30
fuente
0

Es posible que el vector XXS se pueda formar utilizando diferentes métodos de codificación.

ejemplo:

%253Cscript%253Ealert('XSS')%253C%252Fscript%253E

Aquí hay más detalles sobre esto:

enlace

    
respondido por el user1493834 15.12.2016 - 10:26
fuente

Lea otras preguntas en las etiquetas