Пожалуйста, обратите внимание, что пользователь заблокирован
На первой неделе сентября критическая уязвимость была обнаружена в одном из популярных плагинов WordPress под названием File Manager. Успешное использование этой уязвимости приводит к полному захвату целевого сайта, и, что самое приятное, злоумышленнику не требуются для этого какие-либо учетные данные.
Расскажите подробнее о WordPress?
WordPress - это система управления контентом, написанная на PHP и связанная с MYSQL или MariaDB. Чтобы управлять файлами и папками WordPress и выполнять с ними какие-либо операции, администратор WordPress мог делать это через FTP, SCP, Cpanel и т. Д., Что было трудоемкой и утомительной задачей.
Изображение для публикации
Внешний вид WordPress для темы по умолчанию
Что это был за плагин?
Чтобы упростить выполнение этих операций, на сцену выходит плагин файлового менеджера WordPress. Этот плагин позволяет редактировать, удалять, выгружать, скачивать, копировать и вставлять файлы и папки прямо из серверной части WordPress.
Изображение для публикации
Плагин WordPress Popular File Manager
Он имеет более 600K активных установок, и на сегодняшний день последняя версия - 6.9, которая последний раз обновлялась месяц назад. Для запуска этого плагина требуется PHP версии 5.2.4 или выше, и он протестирован до версии WordPress 5.5.1.
Изображение для публикации
Подробнее о плагине файлового менеджера
Я начну с описания уязвимости, а затем продемонстрирую, как использовать эту уязвимость. Здесь следует отметить, что эта уязвимость затрагивает только плагин файлового менеджера WordPress версий 6.0–6.8.
Не могли бы вы подробнее рассказать об уязвимости?
Плагин диспетчера файлов использует библиотеку elFinder, и проблема начинается, когда он переименовывает connector.minimal.php.dist путем удаления .dist. Этот файл подключен к elFinderConnector.class.php и используется для запуска команд elFinder. После анализа функции запуска было обнаружено, что любой параметр, отправленный в запросе connector.minimal.php, будет обрабатываться функцией запуска в elFinderconnector.class.php. Позвольте мне быстро показать вам доступные команды в elFinder.class.php.
Изображение для публикации
список допустимых команд из плагина
Кроме того, учитывая отсутствие аутентификации, endpoint connector.minimal.php доступен напрямую без входа в систему.
Изображение для публикации
доступ к конечной точке без учетных данных
Теперь давайте перейдем к эксплойту. Вот у меня простой скрипт, который печатает информацию PHP. Я загружу этот файл, используя простой элемент формы. Я разместил этот файл локально с помощью python, и когда я получаю доступ к этому файлу и загружаю его, он загружается в папку / wp-content / plugins / wp-file-manager / lib / files, к которой мы собираемся получить доступ, и видим, что мы может получить информацию о PHP. также, если я перейду на сервер, и мы увидим, что файл загружен.
Изображение для публикации
отображать целевую информацию PHP, подтверждающую rce
Теперь я собираюсь загрузить обратную оболочку PHP на целевой сайт с помощью команды curl и выполнить то же самое. полезная нагрузка curl выглядит так. и как только я выполню это, мы сможем получить к нему доступ и получить оболочку. С другой стороны, я настроил прослушиватель Netcat, и когда я получаю доступ к файлу, я могу получить оболочку.
Изображение для публикации
обратный снаряд от целевой системы
Исправление:
Выпущен патч для этой проблемы, и я настоятельно рекомендую как можно скорее обновить плагин до последней версии, то есть до 6.9.
У вас есть POC-видео на то же самое? Где я могу найти его?
Я также создал POC-видео, в котором объясняется и используется уязвимость. Если вам интересно, посмотрите также видео.
Отказ от ответственности:
Я не обнаружил эту критическую уязвимость и не беру на себя ответственность за CVE (CVE-2020–25042). Я создал видео только после анализа описания, доступного в различных блогах и общественных форумах, чтобы помочь энтузиастам безопасности узнать об этой проблеме. Я не несу ответственности за любой ущерб, причиненный организации, использующей этот эксплойт, и я бы посоветовал пользователям не использовать эту уязвимость без письменного согласия организации, так как это может сделать организацию уязвимой для атак других хакеров.
источник:https://medium.com/swlh/wordpress-file-manager-plugin-exploit-for-unauthenticated-rce-8053db3512ac
Расскажите подробнее о WordPress?
WordPress - это система управления контентом, написанная на PHP и связанная с MYSQL или MariaDB. Чтобы управлять файлами и папками WordPress и выполнять с ними какие-либо операции, администратор WordPress мог делать это через FTP, SCP, Cpanel и т. Д., Что было трудоемкой и утомительной задачей.
Изображение для публикации
Внешний вид WordPress для темы по умолчанию
Что это был за плагин?
Чтобы упростить выполнение этих операций, на сцену выходит плагин файлового менеджера WordPress. Этот плагин позволяет редактировать, удалять, выгружать, скачивать, копировать и вставлять файлы и папки прямо из серверной части WordPress.
Изображение для публикации
Плагин WordPress Popular File Manager
Он имеет более 600K активных установок, и на сегодняшний день последняя версия - 6.9, которая последний раз обновлялась месяц назад. Для запуска этого плагина требуется PHP версии 5.2.4 или выше, и он протестирован до версии WordPress 5.5.1.
Изображение для публикации
Подробнее о плагине файлового менеджера
Я начну с описания уязвимости, а затем продемонстрирую, как использовать эту уязвимость. Здесь следует отметить, что эта уязвимость затрагивает только плагин файлового менеджера WordPress версий 6.0–6.8.
Не могли бы вы подробнее рассказать об уязвимости?
Плагин диспетчера файлов использует библиотеку elFinder, и проблема начинается, когда он переименовывает connector.minimal.php.dist путем удаления .dist. Этот файл подключен к elFinderConnector.class.php и используется для запуска команд elFinder. После анализа функции запуска было обнаружено, что любой параметр, отправленный в запросе connector.minimal.php, будет обрабатываться функцией запуска в elFinderconnector.class.php. Позвольте мне быстро показать вам доступные команды в elFinder.class.php.
Изображение для публикации
список допустимых команд из плагина
Кроме того, учитывая отсутствие аутентификации, endpoint connector.minimal.php доступен напрямую без входа в систему.
Изображение для публикации
доступ к конечной точке без учетных данных
Теперь давайте перейдем к эксплойту. Вот у меня простой скрипт, который печатает информацию PHP. Я загружу этот файл, используя простой элемент формы. Я разместил этот файл локально с помощью python, и когда я получаю доступ к этому файлу и загружаю его, он загружается в папку / wp-content / plugins / wp-file-manager / lib / files, к которой мы собираемся получить доступ, и видим, что мы может получить информацию о PHP. также, если я перейду на сервер, и мы увидим, что файл загружен.
Изображение для публикации
отображать целевую информацию PHP, подтверждающую rce
Теперь я собираюсь загрузить обратную оболочку PHP на целевой сайт с помощью команды curl и выполнить то же самое. полезная нагрузка curl выглядит так. и как только я выполню это, мы сможем получить к нему доступ и получить оболочку. С другой стороны, я настроил прослушиватель Netcat, и когда я получаю доступ к файлу, я могу получить оболочку.
Изображение для публикации
обратный снаряд от целевой системы
Исправление:
Выпущен патч для этой проблемы, и я настоятельно рекомендую как можно скорее обновить плагин до последней версии, то есть до 6.9.
У вас есть POC-видео на то же самое? Где я могу найти его?
Я также создал POC-видео, в котором объясняется и используется уязвимость. Если вам интересно, посмотрите также видео.
Отказ от ответственности:
Я не обнаружил эту критическую уязвимость и не беру на себя ответственность за CVE (CVE-2020–25042). Я создал видео только после анализа описания, доступного в различных блогах и общественных форумах, чтобы помочь энтузиастам безопасности узнать об этой проблеме. Я не несу ответственности за любой ущерб, причиненный организации, использующей этот эксплойт, и я бы посоветовал пользователям не использовать эту уязвимость без письменного согласия организации, так как это может сделать организацию уязвимой для атак других хакеров.