Mastodon Mastodon Mastodon Mastodon

Обхід каталогу

Оновлено: · CyberSecureFox Editorial Team

Обхід каталогу (path traversal, directory traversal) — вразливість, яка дає змогу читати або записувати файли поза дозволеною текою за допомогою послідовностей на кшталт ../ у шляху.

Як працює обхід каталогу

Застосунки часто будують шляхи до файлів із введення користувача: запит download?file=report.pdf перетворюється на /var/www/files/report.pdf. Якщо введення не перевіряється, зловмисник може запросити ../../../../etc/passwd або ..\..\windows\win.ini і вибратися за межі каталогу. Закодовані варіанти (%2e%2e%2f), абсолютні шляхи й архіви зі спеціально сформованими іменами файлів (Zip Slip) обходять наївні фільтри. Слабкість описано як CWE-22.

Чому це важливо

Читання довільних файлів розкриває конфігурації, вихідний код, закриті ключі, хеші паролів і дані сесій. Запис іще небезпечніший: зловмисник може підкласти веб-шелл чи перезаписати налаштування й домогтися віддаленого виконання коду. Відомі приклади:

  • Fortinet FortiOS SSL VPN (CVE-2018-13379) — вразливість обходу шляху розкривала файли сесій VPN з паролями у відкритому вигляді; згодом на хакерських форумах опублікували списки десятків тисяч уражених пристроїв.
  • Citrix ADC/NetScaler (CVE-2019-19781) — обхід каталогу призвів до виконання коду й масової експлуатації на початку 2020 року.

Такі помилки регулярно потрапляють до каталогу CISA Known Exploited Vulnerabilities, особливо у VPN-шлюзах, серверах передавання файлів і вебінтерфейсах керування, де публічні експлойти з’являються невдовзі після розкриття.

Як запобігти

  • Не використовувати введення користувача безпосередньо у шляхах: зіставляти запити з ідентифікаторами чи білим списком імен.
  • Канонізувати шлях і перевіряти, що він лишається всередині дозволеного базового каталогу.
  • Запускати сервіси з мінімальними правами на файлову систему та ізолювати їх (контейнери, chroot).
  • Перевіряти імена файлів в архівах перед розпакуванням.

Обхід каталогу тісно пов’язаний з іншими вразливостями обробки введення, наприклад із впровадженням коду.

Синоніми:
path traversal, directory traversal, обхід шляху