🛡 Защищаем свои ресурсы. Часть 3: Path Traversal

Всем привет 🤗 Продолжаем образовательную рубрику и сегодня поговорим об уязвимости Path Traversal.

Если совсем просто - это ситуация, когда пользователь может читать файлы на сервере, к которым у него не должно быть доступа.

Что такое Path Traversal простыми словами

Path Traversal - это ошибка, при которой приложение доверяет пути к файлу, переданному пользователем.

Пример из жизни: сервис должен отдать картинку, а в итоге по запросу отдаёт любой файл на сервере.

Как это выглядит на практике

Допустим, на сайте есть загрузка изображения: /loadImage?filename=218.png Сервер ожидает имя картинки. Но если он не проверяет входные данные, можно подставить другой путь.

Например:

☄️системный файл

☄️конфигурацию приложения

☄️исходники

☄️ключи и токены

И сервер сам их отдаст.

Где чаще всего возникает Path Traversal

Любое место, где пользователь указывает путь к файлу:

• загрузка изображений • скачивание документов • просмотр логов • аватары и превью • экспорт / импорт файлов

Если путь берётся из запроса и не проверяется строго - появляется риск.

Почему это опасно

Через Path Traversal злоумышленник может:

• читать системные файлы • получить конфигурацию приложения • узнать структуру сервера • достать ключи и пароли • подготовить более серьёзную атаку

Иногда одного такого файла достаточно, чтобы получить полный доступ.

Почему это до сих пор встречается

• разработчики доверяют клиенту • проверки делаются «на глаз» • используются чёрные списки вместо логики • забывают про кодировки и обходы • старый или унаследованный код Как защищаются от Path Traversal

Базовые и обязательные меры:

• использовать белый список допустимых файлов • очищать и нормализовать пользовательский ввод • проверять путь после обработки, а не до • жёстко сравнивать путь с базовой директорией • никогда не доверять имени файла из запроса

❗️****Важно: проверка должна быть логической, а не «по символам».

Вывод

Path Traversal - это не про «взлом сервера». Это про ситуацию, когда приложение само отдаёт лишнее.

Если пользователь может влиять на путь к файлу - это всегда зона повышенного риска.

Такие уязвимости редко находят автоматические сканеры, зато они отлично выявляются ручной проверкой.

Продолжение следует 👉 Часть 4: Command injection

🛡 Защищаем свои ресурсы. Часть 3: Path Traversal
Всем привет 🤗
Продолжаем образовательную рубрику и сегодня поговорим об уязвимости Path Traversal | Сетка — социальная сеть от hh.ru