Перейти к содержимому
← Каталог python Command Injection

Command Injection: Слепая инъекция команд (Timing-based)

API сетевой диагностики выполняет команду shell, но не возвращает вывод. Уязвимость обнаруживается через задержку ответа (timing-based).

mediumpythonPro
Задача
# Слепая инъекция команд (Blind Command Injection) ## Сценарий Перед вами интернет-магазин SecureShop. Команда разработки добавила для зарегистрированных пользователей инструмент диагностики сети — Network Diagnostics, проверяющий доступность хоста через ping. На первый взгляд инструмент выглядит безопасно: ответ всегда одинаковый, и вывод системной команды пользователю не возвращается. Но если пользовательский ввод всё-таки попадает в системный вызов, эта классическая ошибка превращается в **Blind Command Injection** — атакующий выполняет произвольные команды, не видя их вывода напрямую, и подтверждает успех через побочные эффекты (задержки, файлы, сетевые запросы). В системе есть административный аккаунт; CTF-флаг лежит в админ-панели. Ваша задача — найти blind-injection в инструменте диагностики, использовать её для разведки серверного окружения и получения admin-доступа, после чего забрать флаг. ## Что такое Blind Command Injection В отличие от классической инъекции, где вывод команды виден в ответе, в blind-варианте: - Сервер передаёт пользовательский ввод в интерпретатор shell. - Вывод полностью скрыт (перенаправлен в `/dev/null` или иначе подавлен). - Ответ всегда одинаковый, независимо от того, что было выполнено. Это затрудняет обнаружение, но не делает уязвимость менее опасной: команды выполняются с полными правами серверного процесса. ## Техники обнаружения Blind Injection - **Time-based** — вставка команды задержки в качестве второй команды; если ответ приходит позже обычного, инъекция работает. Самый быстрый способ подтверждения без внешней инфраструктуры. - **File-based** — выполнение команды, записывающей данные в файл, доступный через HTTP. Содержимое файла читается через браузер. - **Out-of-band** — эксфильтрация данных через DNS-запросы или HTTP-вызовы наружу (требует контролируемого сервера). ## Цели 1. Авторизуйтесь как обычный пользователь и найдите инструмент диагностики сети. 2. Подтвердите наличие blind command injection через одну из техник побочных эффектов. 3. Используя инъекцию, получите доступ к административному аккаунту приложения. 4. Войдите как admin и заберите CTF-флаг из админ-панели. ## Данные | Параметр | Значение | |----------|----------| | Обычный пользователь | `demo` / `demo` | | Цель | админ-доступ → CTF-флаг в админ-панели |
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru