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

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

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

Parameter: Id

Attack: 2

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

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

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

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

1 ответ

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

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

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

Другие вопросы по тегам