¿Este sitio ASP es vulnerable a XSS o no?

2

Tomé una exploración de un sitio ASP y dijo que la validación de la solicitud estaba desactivada. Lo atrapó enviando una URL de example.com/?foo=<script> y recibió una URL de respuesta de example.com/?foo=<script> (la misma).

Yo mismo lo miré y traté de ver qué pasaba. Eché un vistazo más de cerca al código fuente y vi esto debajo de las etiquetas de título:

<form name="frm" method="post" action="/default.aspx" id="frm" enctype="multipart/form-data">

Cuando intento la URL que sugirió el escáner, el código fuente cambia a esto:

<form name="Form" method="post" action="/default.aspx?bar=%3Cscript%3E" id="Form" enctype="multipart/form-data">

que está claramente codificado.

¿Esto significa que la aplicación web está protegida contra XSS y que el escáner encontró un falso positivo?

    
pregunta Suhass 14.09.2015 - 04:22
fuente

2 respuestas

1

La codificación que está sucediendo es la codificación de URL (" < " se codifica como " %3C " y así sucesivamente). Esto lo hace el navegador cuando escribe caracteres especiales en la URL.

Esto se puede verificar interceptando la solicitud que va desde el navegador al servidor mediante un proxy como Burp Suite.

Ahora, si agrega su secuencia de comandos en Burp en lugar del navegador, la secuencia de comandos se reflejará en la respuesta sin codificación. Lo mismo se puede lograr al crear manualmente una página HTML para lanzar la solicitud.

La mitigación real que está viendo es la codificación HTML adecuada ( &lt; y &gt; para " < " y " > "). Para que su aplicación sea completamente blindada y protegida contra XSS, recomendaría usar el filtro ValidateRequest de ASP.NET junto con un filtro personalizado de toda la aplicación que codifica caracteres especiales en todas las solicitudes.

La aplicación no debe aceptar ningún script, carácter especial o HTML en los campos cuando no sea necesario. Debe escapar de caracteres especiales que pueden resultar perjudiciales. Los caracteres pueden escaparse según la lista disponible en este enlace:

respondido por el feral_fenrir 14.09.2015 - 10:06
fuente
0

Será vulnerable en cuanto se haga eco de la variable foo sin ningún tipo de filtro.

Vea información sobre cómo imprimir dinámicamente contenido HTML seguro: enlace

    
respondido por el 0xNacho 14.09.2015 - 11:10
fuente

Lea otras preguntas en las etiquetas