Приветствую! В данной статье разберём простой кейс с OS Command Injection и познакомимся с тем как находить данную уязвимость. Приступим! Нам дают хост, который проверяет доступность внешних сервисов. Посмотрим как он работает штатно, введя какой-нибудь IP: Теперь будем пробовать различные спец. символы, которые используются в Unix и Windows системах, валидные для уязвимости OS Command Injection. Внедрим & между двумя командами (ping & id). Также пробуем pipe и это тоже срабатывает: Точка с запятой тоже даёт схожий результат: Итак, мы нащупали инъекции с символами & | ; Теперь будем танцевать от этого дальше. Вытащим список пользователей системы: Посмотрим содержимое локальной директории: Откроем код главной страницы: Хех :) Произошла рекурсия... Забыли глянуть скрытые директории при помощи ls -la При анализе исходного кода index.php видно, что флаг берётся с крытого файла .passwd, который мы как раз нашли в локальной директории. Читаем .passwd и получаем флаг! Победа! OS Command I