Ін'єкція команд

Ін'єкція команд

Одна крапка з комою в полі форми — і сервер виконує вашу команду.

Що таке Ін'єкція команд?

Ін'єкція команд перетворює один вебзапит на виконання коду від імені самого сервера. Застосунок вклеює введені користувачем дані в рядок команди й віддає його оболонці, яка сприймає кожен спеціальний символ як синтаксис. Ви додасте крапку з комою в поле host мережевого діагностичного інструмента, виконаєте другу команду й прочитаєте файл середовища, де лежить пароль до бази даних. Потім замінете зліплений рядок на execFile , щоб host лишався одним аргументом, і побачите, чому фільтрація небезпечних символів завжди програє.

Що ви дізнаєтесь у Ін'єкція команд

Ін'єкція команд — Кроки навчання

  1. Діагностичний інструмент

    Trelvane надає хостинг і пропонує публічний сервіс Looking Glass: вставте адресу хоста, і периферійні сервери Trelvane пінгують її та повертають необроблений вивід. Клієнтам зручно перевіряти, чи доступний їхній сервер. Перш ніж щось у ньому чіпати, Боб відкриває сервіс і дивиться, як той поводиться.

  2. Сервіс запускає справжню команду

    Увесь інтерес Боба до цієї сторінки зводиться до одного рядка.

  3. Скористайтеся функцією

    Подивіться, як сервіс працює у звичайному режимі. Пропінгуйте звичайний хост, щоб браузер записав запит, який надсилає сторінка.

  4. Знайдіть запит

    Запит пішов, і браузер його записав. Відкрийте вкладку «Network» і подивіться, куди сторінка його надіслала та як передається хост.

  5. Підсуньте другу команду

    Боб більше не чіпає форму. Він змінює записаний запит на вкладці «Network» і переписує значення host : loopback-адреса, крапка з комою, а за нею дві його власні команди. Якщо сервер збирає команду ping, вклеюючи туди значення, крапка з комою завершує ping, і команди Боба виконуються одразу за ним. У ланцюжок він ставить id , щоб дізнатися, від чийого імені працює сервер, і cat , який читає файл середовища воркера, де хостингові агенти зберігають пароль до бази даних і хмарні ключі.

  6. Ключі витекли

    Ping виконався, а далі йдуть рядки, яких ping ніколи не видає.

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

  8. Сповіщення

    Ви відповідаєте за сервіс Looking Glass у Trelvane. Уночі моніторинг зафіксував, що діагностичний воркер робить те, чого інструмент для ping робити не повинен: запускає команди оболонки й читає власний файл із секретами. Подробиці центр моніторингу безпеки надіслав вам листом.

  9. Відкрийте обробник

    Ендпоінт ping обслуговує файл ping.js . Відкрийте його й подивіться, як він запускає команду.

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

    Обробник вклеює значення host у рядок команди й віддає весь рядок оболонці на виконання.

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

OWASP Top 10

  • A05:2025 Injection
  • A03:2021 Injection

CWE

  • CWE-78 Improper Neutralization of Special Elements used in an OS Command

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