Получение флага обхода пути в Zap OWASP, но параметры полностью корректны

Тест на проникновение с использованием OWASP Zap обнаружил ряд «уязвимостей» Path Traversal, но либо отчет не рассказывает мне всю историю, либо они кажутся мне совершенно безопасными. Например:

URL: http://[xxxx]/News/GetContactsList/2

Parameter: Id

Attack: 2

«2» — это идентификатор вызывающего объекта, который требуется нашей системе. Подобные вещи, очевидно, используются во многих местах, но это единственный случай, когда Zap жалуется. Он находит несколько примеров, обычно заменяя 2 другим целым числом или передавая совершенно допустимую строку в другом параметре «PressContacts».

В MVC они привязаны к целым числам и списку целых чисел, поэтому, насколько я могу судить, очищены.

Как я могу точно узнать, в чем проблема, или сказать Zap, что он лает не на то дерево? У нас есть разные действия MVC, которые реагируют на GET и POST, и в отчете не ясно, какое из них выполняется.

Заранее извиняюсь, если я упустил что-то действительно очевидное. Это мой первый раз, когда я использую Zap, поэтому, возможно, я просто что-то неправильно понял.


person Steve Owen    schedule 30.11.2016    source источник


Ответы (1)


На самом деле это очень распространенная форма атаки, и ZAP прав. Целочисленный идентификатор в URL-адресе легко изменить и легко угадать, потому что, скорее всего, это автоматически сгенерированный последовательный номер.

Допустим, пользователь A имеет разрешение на доступ к диапазону идентификаторов от 1 до 100, а пользователь B имеет доступ к диапазону идентификаторов от 1 до 500. Пользователь A может войти в систему и просто изменить идентификатор со 100 на 300 и получить доступ к записи, которую он /она не должна была видеть.

Решение состоит в том, чтобы использовать уникальный идентификатор, который НЕ является последовательным и его НЕ легко угадать. Наиболее распространенный подход — использование GUID вместо идентификатора в URL-адресе.

person Sparrow    schedule 30.11.2016
comment
Это справедливое замечание, но мы все равно проверяем серверную часть, так что это не проблема для нас и, похоже, не отражает сообщение, которое говорит Зап. Это не уязвимость обхода пути. - person Steve Owen; 30.11.2016
comment
Обычно эксперт по безопасности использует отчет, созданный инструментами (такими как ZAP), и пытается определить риски безопасности и поверхность атаки. Риск и поверхность атаки зависят от бизнеса и программного обеспечения, поэтому это должен делать человек. Если вы уверены, что в вашем приложении эта атака не вызывает беспокойства, вы можете смягчить ее и пометить в своем отчете как низкий риск или отсутствие риска. Важно то, что вы знаете, рассмотрели и рассмотрели риск. - person Sparrow; 30.11.2016