Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-11391 — Плагин WordPress PPOM for WooCommerce версии <= 33.0.15 уязвим к SQL-инъекциям. | Kitploit
Инструменты/GitHubGitHub/moritakaaz/cve-2025-11391
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеБезопасность Баз Данных
GitHubmoritakaaz/cve-2025-11391

CVE-2025-11391

Плагин WordPress PPOM for WooCommerce версии <= 33.0.15 уязвим к SQL-инъекциям.

Репозиторий
10 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Неаутентифицированная Blind SQL-инъекция в PPOM для WooCommerce <= 33.0.15

Этот репозиторий содержит Proof of Concept (PoC) для неаутентифицированной time-based blind SQL-инъекции в WordPress-плагине "PPOM for WooCommerce", затрагивающей версии вплоть до 33.0.15 включительно.

Детали уязвимости

  • Плагин: PPOM for WooCommerce
  • Затронутые версии: <= 33.0.15
  • Исправленная версия: 33.0.16
  • Тип уязвимости: Неаутентифицированная time-based blind SQL-инъекция
  • ID CVE: CVE-2025-11391 (присвоен для целей отслеживания)

Описание

Уязвимость существует из-за того, что плагин не выполняет надлежащую санитизацию пользовательского ввода перед использованием его в SQL-запросе. В частности, функция get_product_meta() в classes/plugin.class.php напрямую конкатенирует параметр $meta_id в SQL-запрос без использования подготовленных выражений.

Уязвимый код (classes/plugin.class.php):

root@kitploit:~
function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}

Неаутентифицированный злоумышленник может воспользоваться этой уязвимостью, создав вредоносную полезную нагрузку и внедрив её в параметр ppom[fields][id] при добавлении товара в корзину. Это позволяет злоумышленнику выполнять произвольные SQL-команды, такие как функции задержки времени (SLEEP()), что даёт возможность подтвердить наличие уязвимости и потенциально извлечь конфиденциальную информацию из базы данных посимвольно.

Уязвимость срабатывает, когда в настройках плагина активна опция "Enable Legacy Price Calculations", поскольку это заставляет приложение использовать уязвимый путь выполнения кода во время операций с корзиной.

Структура репозитория

root@kitploit:~
└── cve-2025-11391/
    ├── exploit.py                  # Python-скрипт Proof of Concept.
    └── woocommerce-product-addon/  # Уязвимая версия плагина (v33.0.15).

Шаги по настройке и воспроизведению

1. Требования

  • Локальная среда веб-сервера (например, XAMPP, WAMP, MAMP).
  • Чистая установка WordPress.
  • Установленный и активированный плагин WooCommerce.
  • Python 3.x с установленной библиотекой requests (pip install requests).

2. Настройка лаборатории

  1. Запустите локальный веб-сервер (Apache, MySQL).
  2. Установите WordPress в каталог (например, /htdocs/wp4hacking/).
  3. Установите и активируйте плагин WooCommerce из панели управления WordPress.
  4. Установите уязвимую версию woocommerce-product-addon (v33.0.15), предоставленную в этом репозитории, загрузив .zip-файл из каталога woocommerce-product-addon/.
  5. Активируйте плагин "PPOM for WooCommerce".

3. Уязвимая конфигурация

  1. В панели управления WordPress перейдите в PPOM Fields > Settings.
  2. Найдите опцию "Enable Legacy Price Calculations" и установите флажок, чтобы включить её.
  3. Сохраните изменения.
  4. Перейдите в PPOM Fields и создайте новую группу полей (например, назовите её "PoC Group").
  5. Внутри этой группы добавьте поле Text Input. Задайте ему заголовок (например, "SQL Injection") и имя данных (например, sql_injection).
  6. Перейдите в Products > Add New, чтобы создать новый товар WooCommerce.
  7. Задайте товару название (например, "Product Testing") и цену.
  8. На странице редактирования товара найдите вкладку "PPOM Fields" и выберите созданную вами группу "PoC Group".
  9. Опубликуйте товар. Запомните ID товара (например, 72).

Эксплуатация

Предоставленный скрипт exploit.py подтверждает уязвимость, внедряя команду SLEEP() и измеряя время ответа сервера.

Как запустить эксплойт

  1. Откройте файл exploit.py и настройте следующие переменные:

    • PRODUCT_URL: полный URL-адрес страницы уязвимого товара, который вы создали.
    • add_to_cart_data['add-to-cart']: ID вашего уязвимого товара.
  2. Запустите скрипт из терминала:

    root@kitploit:~
    python exploit.py
    

Ожидаемый результат

Если цель уязвима, сервер будет отвечать дольше, чем длительность SLEEP(), что приведёт к тайм-ауту скрипта. Скрипт корректно интерпретирует этот тайм-аут как успешную эксплуатацию.

root@kitploit:~
Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.

Меры по устранению

  • Немедленно обновитесь: Обновите плагин "PPOM for WooCommerce" до версии 33.0.16 или более поздней.
  • Используйте подготовленные выражения: В исправленной версии используется $wpdb->prepare() для надлежащей санитизации ввода, что предотвращает SQL-инъекцию.

Исправленный код (classes/plugin.class.php):

root@kitploit:~
$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );

Отказ от ответственности

Данный PoC предназначен исключительно для образовательных и исследовательских целей. Не используйте его на каких-либо системах, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Автор не несёт ответственности за любое неправомерное использование или ущерб, причинённый данным скриптом.

Скачать инструмент