Уязвимость безопасности NET Server mappath для получения доступа к web.config - PullRequest
0 голосов
/ 19 января 2019

У меня есть следующий код в моем MVC приложении для загрузки App_Data файлов, сгенерированных сервером.

public ActionResult DownloadFile(string fileName, string dummyName)
        {
            var path = this.HttpContext.Server.MapPath("~/App_Data/TempFiles");
            var filePath = Path.Combine(path, fileName);
            var fileExtension = Path.GetExtension(filePath);

            byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);

            var cookie = new System.Web.HttpCookie("fileDownload", "true")
            {
                Expires = DateTime.Now.AddDays(1),
                Path = "/"
            };
            this.Response.Cookies.Add(cookie);

            return File(fileBytes, "application/octet-stream", fileName);
        }

Кажется, все нормально без проблем, но затем, глядя на уязвимости безопасности, я мог бы использовать post manчтобы отправить что-то вроде этого:

http://localhost/testapp/employee/downloadfile/?filename=netspi- notafile.xxx../../../../web.config&dummyName=netspi-notafile.xxx

И сюрприз .. Я могу получить обратно содержимое web.config.

Любая подсказка о том, как защитить это или предотвратить это.?

...