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

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

Змініть ім'я файлу, вийдіть за межі папки, прочитайте що завгодно.

Що таке Обхід каталогів?

Обробник додає ім'я файлу із запиту до фіксованого каталогу й читає те, на що вказує результат. Додайте кілька сегментів ../ — і результат опиниться поза папкою, яку мав на увазі розробник. Ви заміните ім'я рахунку на ../../../etc/passwd у білінговому ендпоінті й отримаєте системний файл облікових записів. Потім виправите це: приведете шлях до канонічного вигляду через path.resolve і перед читанням перевірите, що результат усе ще лежить у потрібній папці. Видалення .. із рядка — це не та сама перевірка.

Що ви дізнаєтесь у Обхід каталогів

Обхід каталогів — Кроки навчання

  1. Знайдіть функцію завантаження

    Halvora — це білінгова платформа, і кожен клієнт може завантажити власні рахунки на оплату зі сторінки самообслуговування. У Боба є звичайний обліковий запис Halvora. Він відкриває функцію завантаження рахунків, щоб побачити, як вона працює, перш ніж утручатися.

  2. Завантажте звичайний рахунок

    Спершу подивіться, як функція працює у звичайному режимі. Боб завантажує один зі своїх рахунків. Файл зберігається в теці завантажень, а вкладка «Network» браузера записує запит, який надіслала сторінка, — саме те, що розробник бачить у DevTools.

  3. Ім'я файлу — це просто параметр

    Сервер повернув рахунок. Одна деталь у запиті підказує Бобові, як атакувати цю функцію.

  4. Змініть запит і надішліть його повторно

    Кнопка завантаження Бобові не потрібна. Він редагує записаний запит напряму: замість імені рахунку підставляє шлях, що виводить за межі каталогу, де лежать рахунки. Кожне ../ піднімає на один каталог угору; якщо їх досить, шлях доходить до кореня файлової системи, а звідти etc/passwd — файл облікових записів, який є на кожній машині з Linux.

  5. Файл повертається

    У відповіді не рахунок. Це файл облікових записів сервера: сервер прочитав його з диска й повернув через те саме завантаження, яке функція пропонує кожному клієнтові.

  6. Перевірка знань

  7. Сповіщення про злам

    Ви відповідаєте за сервіс завантаження рахунків Halvora. Уночі моніторинг витоку даних зафіксував, що ендпоінт повертає вміст файлу сервера замість PDF. Центр моніторингу безпеки надіслав вам подробиці листом.

  8. Відкрийте обробник завантаження

    Відкрийте обробник завантаження й подивіться, як він перетворює ім'я файлу на файл на диску.

  9. Знайдіть ваду

    Код дописує ім'я файлу до папки з рахунками і читає результат напряму. Шлях нічим не обмежений, тож значення із сегментами ../ виходить за межі папки.

  10. Перевірка знань

Охоплення стандартів безпеки

OWASP Top 10

  • A01:2025 Broken Access Control
  • A01:2021 Broken Access Control

CWE

  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security