Укрепить небезопасное перенаправление ... но перенаправление на себя? - PullRequest
0 голосов
/ 21 октября 2011

У меня есть проект веб-приложения ASP.NET, который я сканирую с помощью Fortify Source Analyzer v3.1.

В веб-проекте есть ASPX, в котором он перенаправляет себя.

Код:

Response.Redirect(Request.Url.ToString());

Fortify классифицирует это как OWASP A10 и CWE / SANS ID 601.Я не понимаю уязвимости - кажется, что мы перенаправляем в очень конкретное место ... текущий URL.

Почему это считается плохим?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Проверка данных, поступающих из Request.Url, не помешает.Я не знаю достаточно о .NET, чтобы ответить разумно, но часто URL содержат пользовательский контент.Может ли быть QueryString?Есть ли фрагмент (#foo) с дополнительными данными после него?Является ли часть пути полностью функциональной, как в "http://server/search/foo"? Это один из причудливых интернационализированных URL-адресов? И если да, то в каком наборе символов возвращается строка? Может ли удаленный злоумышленник указал другое имя хоста и / илиЗаголовок хоста?

Мне не комфортно, что это офигительный ложный позитив. Надеюсь, мы сможем заставить кого-то умного звонить в ...

0 голосов
/ 21 октября 2011

Как правило, SCA ищет ЛЮБЫЕ непроверенные данные, поступающие от пользователя, которые не проверены и не используются напрямую. Соответствующий шаблон видел данные, поступающие в Request.Url.ToString(), а затем использовал Response.Redirect(*). Конкретный источник более чем вероятно не имеет значения в этом случае; только данные, предоставленные пользователем, были недействительными при их использовании.

Если бы вы могли предоставить RuleID, я мог бы дать вам более конкретный ответ.

...