Практический веб-хакинг. Часть 2 - Выполнение произвольного кода через функцию Eval()

27215
Практический веб-хакинг. Часть 2 - Выполнение произвольного кода через функцию Eval()

В первой части мы рассматривали обход XSS-фильтров на стороне клиента. Во второй (Уровень 2) будет рассказано о том, как выполнять произвольный код через функцию eval() языка PHP.

Автор: 1N3(@CrowdShield)

В первой части мы рассматривали обход XSS-фильтров на стороне клиента. Во второй (Уровень 2) будет рассказано о том, как выполнять произвольный код через функцию eval() языка PHP.

Как работает функция eval()

По функционалу калькулятора можно догадаться, что в серверной части используется схожий код, вычисляющий результат:

<?php eval(\"$num1\" \"$operand\" \"$num2\"); ?>

Рисунок 1: Внешний вид веб-калькулятора

Исследование поля операнда

Поскольку весьма вероятно, что на стороне сервера есть защита от ввода нецелых чисел в переменные $num1 и $num2, мы можем попробовать отредактировать поле операнда для запуска инжектируемого PHP-кода. В браузере наводим мышкой на нужный элемент, щелкаем правой кнопкой мыши и выбираем "Inspect Element".

Рисунок 2: Исследование элемента поля операнда

Внедрение PHP-кода

Чтобы внедрить PHP-код, мы будем редактировать поле операнда, как показано ниже. Подобный способ позволяет избежать ошибок при выполнении функции.

<option value=" + 1; phpinfo(); 1 + "> + 1; phpinfo(); 1 + </option>

Рисунок 3: Внедрение PHP-кода в поле операнда

Результат

После нажатия на Submit вы заметите, что инжектированный PHP-код выполнился, и отобразились результаты выполнения. Чтобы избежать подобного рода атак, следует отказаться от использования функции eval(). Кроме того, все данные, вводимые пользователем, должны обрабатываться самым тщательным образом.

Рисунок 4: Внедрение кода завершилось успешно

Видео демонстрация внедрения PHP-кода:

ИИ закрыл все тревоги. А атаки точно остановлены?Разбираем в статье на SecurityLab — и объясняем, как оценивать пользу ИИ, а не красоту отчётов. Читать статью→ 18+. Реклама. Рекламодатель ООО «Интеллектуальная безопасность», ИНН 7719435412, erid: 2SDnjcr7xo6

Реклама 18+
Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com↗️
АО «Позитив Текнолоджиз»