Path Traversal (Обход пути, Directory Traversal) — это уязвимость веб-приложений и систем, позволяющая злоумышленнику получать несанкционированный доступ к файлам и каталогам, расположенным за пределами корневой директории, предназначенной для веб-контента. Атака возможна, когда приложение использует пользовательский ввод (например, параметры в URL или запросе) для построения пути к файлу без надлежащей проверки и очистки.
Возможности и механизмы атаки Path Traversal:
- Чтение конфиденциальных файлов: Получение доступа к системным файлам (
/etc/passwd,/etc/shadowв Linux,C:\Windows\System32\config\SAMв Windows), файлам конфигурации приложения, логам, исходному коду и файлам других пользователей. - Запись произвольных файлов: В случаях, когда уязвимость позволяет не только читать, но и записывать файлы, возможна модификация существующих или создание новых файлов (например, webshell) для получения контроля над системой.
- Основные векторы атаки: Использование специальных последовательностей для перемещения по файловой системе.
Path Traversal — критическая уязвимость, часто приводящая к полной компрометации системы. Она возникает из-за недостаточной проверки пользовательского ввода и доверия к нему при построении файловых операций. Уязвимость может встречаться не только в веб-приложениях, но и в FTP-серверах, системах управления контентом, API и клиентском ПО.
Защита от Path Traversal:
- Валидация по белому списку: Если приложение должно работать с определённым набором файлов, следует использовать белый список допустимых имён и отклонять всё остальное.
- Канонизация пути и проверка: Использование встроенных функций языка для приведения пути к канонической форме с последующей проверкой, что итоговый путь находится внутри разрешённой корневой директории.
- Хранение файлов вне корня веб-сервера: Размещение файлов, к которым нужен доступ через приложение, в директории, не доступной для прямого обращения через веб. Доступ должен осуществляться только через контролируемый код приложения (например, через скрипт-прокси).
- Использование идентификаторов вместо имён файлов: Хранение файлов в базе данных или файловой системе под сгенерированными именами (UUID), а предоставление доступа через ID, которые маппятся на реальные пути на сервере без участия пользовательского ввода.
- Принцип наименьших привилегий: Запуск веб-сервера и приложения от имени пользователя с минимально необходимыми правами на чтение/запись файлов.
- Регулярное тестирование: Включение проверок на Path Traversal в процесс тестирования безопасности (SAST, DAST, пентесты) с использованием чек-листов OWASP и инструментов вроде Burp Suite.
Эта уязвимость классифицируется в OWASP Top 10 в категории A01:2021-Broken Access Control и A03:2021-Injection, так как по своей природе является инъекцией в файловую систему. Успешная эксплуатация Path Traversal может стать первым шагом к полному контролю над сервером, особенно в комбинации с другими уязвимостями.
Упоминания
-
29 января 2026
В декабре 2025 года зафиксирован рекордный рост атак на онлайн-ресурсы российских компаний
Количество кибератак на веб-ресурсы российских компаний резко возросло в конце 2025 года. Как сообщила компания WMX, в декабре межсетевой экран... -
10 ноября 2025
Обзор главных уязвимостей октября
По итогам октября 2025 года эксперты R-Vision проанализировали широкий спектр уязвимостей и выделили наиболее критичные из них. Уязвимости в Microsoft...
