Перейти к содержимому

Поиск по платформе

Basic Command Injection: Сетевой пинг

Простая OS Command Injection через инструмент сетевой диагностики в админ-панели.

Автор: Hack & Fix
Освоишь: exec.Command argsбез shell -cinput allowlist
Легко+30 XP ~20 мин golang
CWE-77 · A03:2021 Pro
Обложка: Basic Command Injection: Сетевой пинг Обложка: Basic Command Injection: Сетевой пинг
Задача
# OS Command Injection (выполнение команд через сетевую диагностику) ## Сценарий Вы проводите аудит безопасности **NordWave Retail** — интернет-магазина техники с админ-панелью на Go. Служба поддержки попросила инструмент проверки доступности складов, и разработчик добавил в админ-панель раздел **Network Diagnostics**: администратор вводит хост, сервер выполняет пинг и показывает вывод. Разработчик уверен, что эндпоинт безопасен, ведь доступ к нему ограничен ролью администратора. Но скомпрометированная админ-сессия не должна превращаться в контроль над контейнером — проверьте, не исполняет ли сервер через этот инструмент произвольные команды. ## Цель 1. Войдите в админ-панель и найдите инструмент **Network Diagnostics**. 2. Подтвердите, что значение поля `host` конкатенируется в строку команды, которая исполняется системной оболочкой. 3. Допишите к пингу вторую команду, выводящую секретные переменные окружения процесса, и получите флаг из ответа. ## Теория **OS Command Injection** возникает, когда приложение собирает команду для операционной системы конкатенацией строк с пользовательским вводом и передаёт результат системной оболочке. Оболочка интерпретирует управляющие конструкции: разделители команд позволяют дописать к основной команде вторую, конвейеры и подстановка команд — встроить её вывод в другую. Итог — выполнение произвольных команд с привилегиями процесса приложения. **Уязвимый паттерн:** ```go // Ввод конкатенируется в команду и уходит в системную оболочку: cmd := exec.Command("sh", "-c", fmt.Sprintf("ping -c 3 %s", host)) ``` Ограничение доступа ролью администратора здесь — не защита, а лишь сужение круга атакующих: любой, кто получил админ-сессию, через такой эндпоинт получает доступ к секретам процесса, включая переменную окружения с флагом лабы. ## Точка входа атаки `POST /admin/ping` — форма в админ-панели с полем `host` (защищена CSRF-токеном). * **Администратор:** `admin` / `LabAdmin2024!` * **Флаг:** значение секретной переменной окружения процесса — оно появится в выводе после успешной инъекции

Похожие лабораторные (4)

другие лабы по этой уязвимости
Обложка лабы: Bypass Filters: Строгий WAF Обложка лабы: Bypass Filters: Строгий WAF
CMD Injection

Bypass Filters: Строгий WAF

Обход фильтрации пробелов и черного списка команд для RCE.

+60 XP
Go Pro
Exploit Fix
Обложка лабы: Argument Injection в архиваторе файлов Обложка лабы: Argument Injection в архиваторе файлов
CMD Injection

Argument Injection в архиваторе файлов

Обработчик архивации файлов использует exec.Command без shell, но не фильтрует аргументы, начинающиеся с '-'. Атакующий может внедрить произвольные флаги команды tar.

+90 XP
Go Pro
Exploit Fix
Обложка лабы: Blind Command Injection через сетевую диагностику Обложка лабы: Blind Command Injection через сетевую диагностику
CMD Injection

Blind Command Injection через сетевую диагностику

Обработчик сетевой диагностики передаёт пользовательский ввод в sh -c без фильтрации. Результат команды не отображается — используйте time-based технику для подтверждения инъекции.

+90 XP
Go Pro
Exploit Fix
Обложка лабы: Command Injection: Базовая инъекция команд в Node.js Обложка лабы: Command Injection: Базовая инъекция команд в Node.js
CMD Injection

Command Injection: Базовая инъекция команд в Node.js

Панель администратора содержит инструмент диагностики сети, передающий ввод напрямую в child_process.exec() без фильтрации.

+30 XP
Node.js Pro
Exploit Fix