Читать книгу Анализ защищенности распределенных информационных систем. DVWA. Для студентов технических специальностей - Иван Андреевич Трещев - Страница 5
3 Command Injection Hard
ОглавлениеCommand Injection (внедрение команды) – уязвимость, представленная в пункте A1 OWASP Top 10 (внедрение). Она позволяет выполнять на стороне сервера произвольный код.
В DVWA на странице Command Injection представлена форма, изображённая на рисунке 3.1. В неё пользователь может написать адрес узла, который будет являться аргументом команды ping.
Рисунок 3.1 – Форма с полем ввода адреса
При вводе корректного адреса выводится результат работы утилиты ping.
При попытке использования в качестве разделителей команд различные символы выясняется, что использование прямой черты (|) без пробела помогает обойти механизм фильтрации пользовательского ввода.
На рисунке 3.2 изображено подтверждение наличия уязвимости. На стороне сервера будет выполнена команда «ping localhost; echo Hello».
Рисунок 3.2 – Подтверждение наличия уязвимости
Для уменьшения времени получения вывода можно не писать аргумент команде ping, то есть, вводить первым символом прямую черту.
По заданию необходимо получить имя текущего пользователя и hostname контейнера (docker-контейнера). Команды, выводящие указанные данные, изображены на рисунках 3.3 и 3.4. На стороне сервера при этом выполнятся команды «ping |id» и «ping |hostname».
Рисунок 3.3 – Имя пользователя
Рисунок 3.4 – hostname