🚀 Не просто читай — прокачивайся! Зарегистрируйся в Kraken Academy и учись на практике: стенды, модули и путь к реальным скиллам.

Командная инъекция — это уязвимость, при которой злоумышленник может передать в веб-приложение свою команду, а та будет выполнена на сервере с правами приложения.
Это один из самых опасных видов атак: он даёт прямой доступ к операционной системе, а значит — к данным, файлам, внутренней сети и даже полной компрометации сервера.

Как работает командная инъекция

Многие веб-приложения взаимодействуют с ОС: вызывают скрипты, утилиты, обрабатывают файлы, проверяют соединения. Если разработчик напрямую подставляет пользовательский ввод в системную команду без фильтрации, появляется уязвимость.

Пример (PHP):

<?php
$ip = $_GET['ip'];
echo shell_exec("ping -c 4 " . $ip);
?>

Если в ip подставить 8.8.8.8; cat /etc/passwd, сервер после пинга выполнит и команду cat.

Поиск и проверка уязвимостей

Пентестеры проверяют:

  • Формы и поля ввода, которые вызывают системные действия (пинг, поиск, архивирование).

  • API-методы, принимающие параметры, которые могут попасть в команду.

  • Неочевидные точки ввода — заголовки HTTP, cookies, параметры файлов.

Для проверки используют специальные символы:

  • ;, &&, || — для последовательного выполнения команд.

  • | — для передачи вывода одной команды в другую.

  • Обратные кавычки `команда` и $(команда) — для подстановки.

Внедрение команд в Linux и Windows

  • Linux: стандартные разделители ;, &&, |, подстановка команд.

  • Windows: символы &, |, использование cmd.exe с ключами.

Обход фильтров и защит

Разработчики часто пытаются блокировать опасные символы и команды, но это не всегда работает.
Методы обхода:

  • Пробелы заменяются на ${IFS} или %20.

  • Разделители заменяются на их кодировки (%0a, %0d).

  • Запрещённые слова (например, cat) маскируются: c''at, ca\t.

Обфускация — искусственное усложнение полезной нагрузки, чтобы пройти фильтры.

Инструменты для тестирования и обхода

  • Burp Suite — перехват и модификация запросов.

  • FFUF или wfuzz — автоматический перебор полезных нагрузок.

  • Commix — специализированный инструмент для поиска и эксплуатации командных инъекций.

Как защитить приложение

  • Никогда не передавать пользовательский ввод напрямую в системные команды.

  • Использовать безопасные API и функции (например, escapeshellarg в PHP).

  • Применять валидацию и белые списки значений.

  • Ограничивать права пользователя приложения в ОС.

  • Логировать все обращения и регулярно проводить аудит.

Почему командные инъекции так опасны

В отличие от многих уязвимостей, XSS или SQL-инъекций, командная инъекция даёт контроль не только над приложением, но и над всей системой. Даже одна строчка уязвимого кода может превратить сервер в полностью скомпрометированный узел.

Хотите научиться находить, эксплуатировать и закрывать командные инъекции?
В модуле «Командные инъекции» вы пройдёте путь от поиска уязвимых точек до обхода фильтров и защиты, а в одном из практических заданий получите полный доступ к серверу через веб-шелл. 7 уроков с практикой дадут навык, который можно применить в пентесте и защите приложений.

Изучить модуль →

📘 Понравилась статья?

Больше практики и реальных заданий — в Kraken Academy.
А чтобы точно ничего не пропустить — подпишись на наш Telegram-канал.

Рекомендуемые статьи

Обложка

Веб-запросы: что это, как они работают и почему их важно понимать в кибербезопасности

Читать полностью →
Обложка

Fortinet под атакой

Читать полностью →
Обложка

Airgeddon: что это за инструмент и как он используется для тестирования Wi-Fi

Читать полностью →