Найти в Дзене

Автоматизация сценария с уязвимостью CVE-2023-5360. Часть 1

Данная статья будет разбита на 3 части, так как для развернутого пояснения по автоматизации эксплуатации уязвимости нужно расписать не малый объем общей и конкретной информации. Распишу что будет встречаться в каждой части статьи: В настоящее время, множество компаний нуждается в наличии собственных веб-сайтах. Однако не каждая компания может себе позволить нанимать специалистов по веб-разработке или не имеет достаточных знаний в этой области. Поэтому конструкторы сайтов становятся популярным решением для тех, кто хочет быстро и легко создать свой интернет-проект. Конструкторы сайтов предлагают пользователям множество готовых шаблонов и понятных инструментов для создания и редактирования сайтов, что делает задачи по созданию собственных страниц доступными для многих пользователей. К таким конструкторам относятся CMS – система управления контентом. Обычно CMS построены так, чтобы их можно было легко расширить плагинами и дополнениями, которые можно настроить под конкретные нужды. На рын

Данная статья будет разбита на 3 части, так как для развернутого пояснения по автоматизации эксплуатации уязвимости нужно расписать не малый объем общей и конкретной информации. Распишу что будет встречаться в каждой части статьи:

  • В первой части мы поговорим о том что такое CMS и почему был выбран именно WordPress.
  • Во второй части будут рассмотрены необходимые утилиты для написания скриптов автоматизации CVE.
  • В третье части будут подробно рассмотрены написанные мною скрипты и наглядный пример эксплуатации уязвимости.

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

Конструкторы сайтов предлагают пользователям множество готовых шаблонов и понятных инструментов для создания и редактирования сайтов, что делает задачи по созданию собственных страниц доступными для многих пользователей. К таким конструкторам относятся CMS – система управления контентом. Обычно CMS построены так, чтобы их можно было легко расширить плагинами и дополнениями, которые можно настроить под конкретные нужды. На рынке существует множество популярных CMS, каждая из которых предлагает свои уникальные возможности и соответствует различным требованиям пользователей. Некоторые популярные платформы CMS:

  • wordpress;
  • shopify;
  • wix;
  • squarespace;
  • joomla.
Топ 5 CMS-решений
Топ 5 CMS-решений

WordPress – наиболее популярная система управления контентом по всему миру так как: он бесплатный, имеет открытый исходный код и достаточное количество плагинов. Данный CMS доступен как в сетевом доступе, так и для загрузки на собственный хостинг сервер.

Главные особенности WordPress:

  • множество плагинов – предлагает обширное количество плагинов для расширения и настроек сайта, решения есть как платные, так и бесплатные;
  • примитивный интерфейс – решение известно простым и интуитивно понятным интерфейсом, позволяющим любому пользователю начать управление своим сайтом;
  • обширное сообщество – WordPress имеет большое сообщество пользователей и разработчиков, которые работают над улучшением платформы. Данное сообщество так же предоставляет поддержку и учебные пособия для пользователей.

Shopify - это платформа управления контентом, специализированная на интернет-торговле, которая предоставляет инструменты для создания, редактирования и развития онлайн-магазинов. Благодаря удобному интерфейсу, мощным функциям электронной коммерции и встроенным инструментам маркетинга, Shopify привлекает продавцов, желающих использовать все необходимые возможности для успешного ведения своего онлайн-бизнеса.

Главные особенности Shopify:

  • простота использования платформы;
  • комплексные функции электронной коммерции;
  • поддержка множества валют;
  • интеграция с amazon, ebay, etsy;
  • множество маркетинговых инструментов;
  • круглосуточная поддержка.

Wix – представляет облачный конструктор сайтов, известный своей простотой использования и интуитивно понятным интерфейсом. Wix позволяет пользователям без каких либо навыков создания веб-сайтов создать и запускать полностью адаптивные сайты.

Главные особенности Wix:

  • простота интерфейса с функцией drag-and-drop;
  • ии-помощник по дизайну;
  • множество интеграций для расширения функциональности;
  • совместимость с интернет-магазинами и платежными шлюзами;
  • множество маркетинговых инструментов;
  • бесплатный ssl-сертификаты;
  • оптимизация для мобильных устройств.

Squarespace – отличается красивыми шаблонами и акцентирует внимание на внешнем виде, что делает его привлекательным для творческих людей, таких как художники и дизайнеры. Пользователи могут легко создавать веб-сайты, используя интуитивный метод drag-and-drop и разнообразные настройки.

Главные особенности Squarespace:

  • широкий спектр профессиональных шаблонов;
  • возможность использования функции drag-and-drop при создании;
  • оптимизация для использования на мобильных устройствах;
  • совместимость с функциями электронной коммерции;
  • интеграции с google analytics, mailchimp и платформы социальных сетей;
  • доступ к пользовательскому css и javascript для разработчиков, которым нужны расширенные возможности настройки;
  • включенные ssl-сертификаты.

Joomla – популярная CMS платформа с открытым исходным кодом, известная простотой использования, широким функционалом и множеством настроек. Joomla предлагает более обширный спектр функциональных возможностей по сравнению с WordPress. Данный сервис подойдет для пользователей, которым необходимо равное соотношение возможностей и удобством пользования.

Главные особенности Squarespace:

  • простота использования платформы;
  • множество расширений для повышения функционального спектра;
  • встроенная поддержка разных языков;
  • обширное сообщество.

Используя график предоставленный ранее, можно с уверенностью сказать, что WordPress занимает лидирующее положение среди всех CMS, используемых на 64,2% всех веб-сайтов в мире. Поэтому для актуализации статьи по информационной безопасности берётся уязвимостиуязвимостямCь CVE, относящаяся именно к CMS WordPress.

Атаки на WordPress довольно частое явление, поэтому уязвимостей CVE на эту платформу обширное количество. Для создания статьи была выбрана уязвимость, найденная в ноябре 2023 года - CVE-2023-5360. По статистика сайта opencve.io данная уязвимость заработала 9.8 баллов из 10 и статут “критическая”.

Оценка уязвимости
Оценка уязвимости

Уязвимость была классифицирована как критическая и была обнаружена в плагине Royal Elementor Addons and Templates на WordPress.

Elementor – это бесплатный инструмент для создания страниц на WordPress, который обеспечивает широкие возможности для настройки. С помощью функции drag-and-drop можно легко создавать страницы и макеты. После использования плагина Elementor становится возможным:

  • создавать новый страницы сайта используя любые стили, макеты или любой другой функциональностью;
  • будет доступен совершенно иной, более удобный интерфейс редактирования вашей страницы;
  • редактирование происходит с внешнего интерфейса, мы видим то, что будет видеть посетитель сайта. Нет необходимости сохранять черновик и включать предварительный просмотр.

Плагин Royal Elementor Addons and Templates предоставляет дополнительные функциональные возможности и шаблоны для использования с плагином Elementor на платформе WordPress. Он добавляет новые элементы дизайна, виджеты, шаблоны и функции, которые помогают улучшить процесс создания и редактирования веб-страниц с помощью Elementor. Плагин позволяет расширить возможности дизайна и добавить креативные элементы на ваш сайт, делая его более привлекательным и функциональным.

Плагин Royal Elementor Addons and Templates для WordPress имеет уязвимость для произвольной загрузки файлов во всех версиях до 1.3.78 включительно из-за недостаточной проверки типа файла в функции handle_file_upload(), содержащуюся в коде плагина. Эта функция вызывается через AJAX-запрос и позволяет злоумышленникам указать предпочтительное расширение типа файла в параметре 'allowed_file_types' с использованием специального символа, что позволяет загруженному файлу обойти список фильтров, в данной уязвимости используется символ $.

AJAX – означает Asynchronous Javascript and XML. Asynchronous JavaScript and XML - это подход в веб-разработке, который позволяет обмениваться данными между браузером пользователя и сервером без необходимости полной перезагрузки веб-страницы. AJAX использует комбинацию JavaScript для обработки событий и выполнения запросов к серверу, XML или других форматов данных для передачи информации между браузером и сервером, а также CSS для стилизации страницы. С помощью AJAX можно загружать и отображать дополнительные данные на странице без перезагрузки, отправлять данные на сервер для обработки обновлять информацию в реальном времени и многое другое. Конкретная часть страницы, которая обновляется при использовании AJAX, может быть определена веб-разработчиком в зависимости от потребностей проекта. Это может быть, например, блок с информацией о товаре на странице, комментарии на блоге, результаты поиска на сайте и т. д. Все зависит от того, какая информация должна быть обновлена в реальном времени без перезагрузки всей страницы.

Таким образом, используя Ajax-запросы на функцию handle_file_upload(), злоумышленник может загружать на сайты, которые используют WordPress, файлы со своим вредоносным кодом. Такие атаки относятся к LFI/RFI-атакам. Remote file inclusion- это метод, который позволяет злоумышленнику использовать скрипт для включения удаленно размещенного файла на веб-сервере. Уязвимость, способствующая RFI, в основном встречается на веб-сайтах, работающих на PHP. Local file inclusion– очень похожа на RFI. Разница лишь в том, что в LFI для проведения атаки вместо включения удаленных файлов злоумышленнику приходится использовать локальные файлы, т. е. файлы на текущем сервере могут быть использованы только для выполнения вредоносного скрипта. Поскольку эта форма уязвимости может быть использована только с помощью веб-браузера, LFI может легко привести к удаленному выполнению кода путем включения файла, содержащего контролируемые злоумышленником данные, такие как журналы доступа к веб-серверу.

Для автоматизации изучаемой уязвимости, которая позволяет нам получить Web-Shell необходимы виртуальные машины на базе Kali Linux и некоторые утилиты, о которых мы поговорим во второй части со сценарием.