Розповідаемо про SSRF (помилки запитів з боку сервера), які дозволяють зловмисникам спонукати сервер робити небажані запити до внутрішніх або зовнішніх ресурсів. Описуються методи виявлення та запобігання таким уразливостям з боку Blue Team та Red Team, а також рекомендації щодо валідації URL та обмеження доступу до захищених ресурсів.
Помилки запитів з боку сервера (SSRF) – це вразливості, що дозволяють зловмисникам спонукати сервер робити запити до внутрішніх ресурсів або зовнішніх ресурсів, які він не повинен запитувати.
Опис: Використання даних, отриманих від користувачів, для формування запитів без належної перевірки.
Приклад: Додаток, що дозволяє користувачам вказувати URL для запитів до внутрішніх ресурсів, що може призвести до витоку інформації.
Опис: Зловмисники можуть спонукати сервер виконати запити до внутрішніх або захищених ресурсів.
Приклад: Використання вразливостей для доступу до внутрішніх API або сервісів, які не повинні бути доступними ззовні.
Опис: Використання запитів для отримання конфіденційної інформації з серверів.
Приклад: Отримання доступу до конфіденційних даних, які не повинні бути доступні зовні, наприклад, внутрішні інтерфейси або адміністративні панелі.
Переконайтеся, що всі URL, які надходять від користувачів, правильно валідуються і перевіряються на допустимість. У PHP (Laravel) можна валідувати URL для запитів до API, щоб дозволити тільки безпечні домени:
Уникайте доступу до внутрішніх ресурсів або захищених API через зовнішні запити. Додайте обмеження для доступу до локальних ресурсів і сервісів за допомогою конфігурацій:
Використовуйте списки дозволених URL для запитів, щоб уникнути доступу до несанкціонованих або небезпечних ресурсів.
Перевірте, чи є уразливості SSRF у додатку, використовуючи різні URL. Надсилайте запити, які намагаються доступитися до локальних ресурсів або внутрішніх API:
Використовуйте інструменти для тестування, такі як Burp Suite або OWASP ZAP, щоб автоматизувати подачу запитів з потенційно небезпечними URL.
Спробуйте обійти механізми валідації URL, щоб перевірити, чи можливий доступ до внутрішніх ресурсів. Тестуйте, чи ваш запит може проходити через невалідовані або неперевірені URL:
Зміна параметрів запитів для перевірки, чи обробляються несанкціоновані URL або дані, які можуть виявити уразливість.