Volviendo vista parametrizada

1

Así que acabo de encontrarme con este desagradable código.

public ActionResult Display(string viewName)
{
        return View(viewName);
}

Evitaría tener ese parámetro o al menos obtendría ese parámetro a través de una lista blanca como lo haría con cualquier información no confiable, pero aparte de eso me preguntaba si esto es realmente explotable o no.

Ahora, lo que he intentado hasta ahora es obtener archivos que no sean cshtml y archivos fuera de la raíz de la aplicación sin suerte. (ningún motor de visualización admite las ubicaciones buscadas)

?viewName=~/web.config
?viewName=C://anotherview.cshtml
?viewName=https://anotherdomain.com/anotherview.cshtml

Lo único que he podido es obtener otras vistas representadas que, en teoría, nunca debería haber podido ver (acciones de administrador y cosas similares).

Pero incluso después de obtener esas vistas y suponiendo que no hay datos en las vistas, no parece ser un gran problema.

¿Hay alguna otra manera de aprovechar este parámetro? Supongo que todo se reduce a si la función de visualización tiene un error de implementación que permitirá omitir la ubicación o el tipo de archivo que se devolverá.

    
pregunta EpicVendetta 23.02.2017 - 13:38
fuente

1 respuesta

0

Para todos los propósitos prácticos, de hecho hay una lista blanca en efecto aquí.

El parámetro no es un nombre de archivo per se, sino un nombre de vista, solo útil para cargar una instancia de una vista ya compilada que es un tipo que implementa la interfaz IView, desde la aplicación. Dándole nombres de archivos arbitrarios, o cualquier contenido que no sea el nombre de una vista en el contexto de este controlador en esta aplicación, y no obtendrá nada.

Así que no, no hay vulnerabilidad aquí.

    
respondido por el Xander 21.07.2017 - 15:46
fuente

Lea otras preguntas en las etiquetas