The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Уязвимость в платформе для создания интернет-магазинов WooCommerce

08.11.2018 13:32

В WooCommerce, плагине к системе управления контентом WordPress, позволяющем создавать площадки для продажи товаров, выявлена уязвимость, позволяющая выполнить код на сервере и получить полный контроль за сайтом. WooCommerce насчитывает более 4 млн установок и по статистике разработчиков используется для обеспечения работы около 30% всех интернет-магазинов в сети. Проблема устранена в выпуске WooCommerce 3.4.6.

Для эксплуатации уязвимости необходимо наличие прав менеджера торговой площадки. Отправив определённым образом оформленный запрос можно удалить произвольные файлы на сервере, насколько это позволяют полномочия, под которыми выполняется WordPress. Например, в ходе атаки можно удалить файл wp-config.php и инициировать процесс установки нового экземпляра WordPress. В ходе атаки злонамеренный сотрудник может завести новый аккаунт администратора WordPress, при помощи которого можно запустить произвольный PHP-код на сервере.

Для атаки также можно воспользоваться недоработкой в организации обработки привилегий в WordPress. На уровне плагина пользователи с правами менеджера торговой площадки имеют право только изменять учётные записи клиентов, но не имеют полномочий для изменения других аккаунтов, в том числе аккаунта администратора. При этом роль менеджера торговой площадки с правом edit_users определяется на уровне платформы WordPress и в случае отключения плагина WooCommerce, так как ограничение доступа реализовано на его уровне, менеджеры торговой площадки получают возможность редактирования профилей всех пользователей WordPress. Воспользовавшись вышеописанной уязвимостью можно удалить файл woocommerce.php и отключить таким образом плагин WooCommerce, что позволит получить права администратора и выполнить PHP-код на сервере.

  1. Главная ссылка к новости (https://blog.ripstech.com/2018...)
  2. OpenNews: В WordPress 4.9.7 устранены уязвимости, позволяющие удалять файлы в системе
  3. OpenNews: Новая критическая уязвимость в Drupal, уже используемая для совершения атак
  4. OpenNews: Доля WordPress среди крупнейших сайтов достигла 30%
  5. OpenNews: Создан ClassicPress, форк WordPress с классическим web-редактором
  6. OpenNews: Зафиксирована массовая атака на сайты с необновлённым движком WordPress
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: wordpress, ecommerce
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (6) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:16, 08/11/2018 [ответить]  
  • +4 +/
    > Для атаки также можно воспользоваться недоработкой в организации обработки привилегий в WordPress. На уровне плагина пользователи с правами менеджера торговой площадки имеют право только изменять учётные записи клиентов, но не имеют полномочий для изменения аккаунтов администратора. При этом роль менеджера торговой площадки с правом edit_users определяется на уровне платформы WordPress и в случае отключения плагина WooCommerce, так как ограничение доступа реализовано на его уровне, менеджеры торговой площадки получают возможность редактирования профилей всех пользователей WordPress.

    Это не «недоработка», а последствие использования т.н. костыля.

     
  • 1.5, Вот оно че (?), 23:20, 08/11/2018 [ответить]  
  • +1 +/
    А нельзя придумать для интерпретатора какой-нибудь релиз/дев режимы? Чтобы можно было запретить ненужные и потенциально опасные функции.

    Например, функции записи на диск и т.д. Так сказать кастрировать интерпретатор.

     
     
  • 2.6, DeKa (?), 23:49, 08/11/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    disable_functions string
    Эта директива позволяет отключить некоторые функции по причинам безопасности. Она принимает список имен функций, разделенный запятыми. disable_functions не подвержена влиянию безопасного режима.

    Только внутренние функции могут быть отключены с помощью этой директивы. Пользовательские функции ей не подвержены.

    Эта директива должна быть установлена в php.ini. Например, ее нельзя использовать в httpd.conf.

    disable_classes string
    Эта директива позволяет отключить некоторые классы по причинам безопасности. Она принимает список имен классов, разделенных запятыми. disable_classes не подвержена влиянию безопасного режима. Эта директива должна быть установлена в php.ini. Например, ее нельзя использовать в httpd.conf.

     
  • 2.7, MVK (??), 10:07, 09/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Раньше был SAFE_MODE, а начиная с PHP 5.4.0 - геморой
     
  • 2.9, redwolf (ok), 11:15, 09/11/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Есть ещё Suhosin -- набор патчей на эту же тему.
     

  • 1.8, Аноним (8), 10:20, 09/11/2018 [ответить]  
  • +/
    >В ходе атаки злонамеренный сотрудник может завести новый аккаунт администратора WordPress, при помощи которого можно запустить произвольный PHP-код на сервере.

    И потом присесть за НСД...

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру