¿Qué tan confiable es la función de Validación de Solicitud de ASP.NET?

11

ASP.NET ofrece una capa adicional para proteger su aplicación de ataques e inyecciones XSS en general, que se llama Validación de solicitud .

En su tema oficial, mencionan que:

  

Incluso si está utilizando la validación de solicitudes, debe codificar el texto HTML que recibe de los usuarios antes de mostrarlo en una página.

Suponiendo que una aplicación web no valida ni desinfecta ningún dato enviado al servidor, pero tiene la función habilitada, ¿cómo podría uno omitir esta capa adicional para enviar código malicioso? ¿Es esta característica necesaria para una aplicación ASP.NET?

    
pregunta Simon 26.06.2013 - 23:06
fuente

2 respuestas

13

Como probador de penetración, he encontrado que "Solicitar validación" falla en varias situaciones. Los desarrolladores tienden a creer que "Request Validation" == "magic" , y los protege completamente de XSS, cuando en realidad esta falsa sensación de seguridad da lugar a problemas muy serios. Todas las formas de XSS basadas en DOM y XSS persistentes omitirán la "Validación de la solicitud", y hay otros casos en los que falla:

En este próximo caso, el atacante no necesita escribir una etiqueta HTML, simplemente escribiendo un URI de JavaScript que un atacante puede ejecutar JavaScript:

<a href="javascript:alert(1)">xss</a>
<iframe src="javascript:alert(1)" />

En este caso, el atacante ya está escribiendo dentro de una etiqueta de secuencia de comandos:

<script>
  var x=alert(1);
</script>
    
respondido por el rook 27.06.2013 - 04:57
fuente
0

Sí, la validación de la solicitud predeterminada no es suficiente para evitar XSS, pero mucho depende de los detalles.

La validación de solicitud predeterminada simplemente filtra caracteres estándar como < o%, pero dependiendo de cómo se presentan los resultados, todavía es posible crear algo que se ejecutará. Ver los diferentes vectores de ataque para XSS. Hay muchas posibilidades de hacer XSS incluso con conjuntos de caracteres restringidos.

    
respondido por el http 27.06.2013 - 00:36
fuente

Lea otras preguntas en las etiquetas