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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-22710 — PoC of CVE-2025-22710 | Kitploit
Инструменты/GitHubGitHub/dottak/cve-2025-22710
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubdottak/cve-2025-22710

CVE-2025-22710

PoC of CVE-2025-22710

Репозиторий
21 год назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2025-22710

1️⃣ Тип компонента

Плагин WordPress

2️⃣ Сведения о компоненте

Имя компонента WooCommerce Advanced Bulk Edit Products, Orders, Coupons, Any WordPress Post Type – Smart Manager

Уязвимая версия <= 8.50.0

Слаг компонента smart-manager-for-wp-e-commerce

Ссылка на компонент https://wordpress.org/plugins/smart-manager-for-wp-e-commerce/

3️⃣ OWASP 2017: TOP 10

Класс уязвимости A3: Инъекция

Тип уязвимости SQL-инъекция

4️⃣ Предварительные условия

Администратор

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

👉 Краткое описание

Плагин WooCommerce Advanced Bulk Edit Products, Orders, Coupons, Any WordPress Post Type – Smart Manager (далее Smart Manager) позволяет выполнять массовое редактирование и просмотр всех типов записей в WordPress.

В версии плагина Smart Manager 8.50.0 и ниже при использовании функции расширенного поиска для просмотра записей возникает уязвимость SQL-инъекции, поскольку значения фильтрации передаются в запросы к базе данных без экранирования.

Однако, хотя прямые результаты атак SQL-инъекций не видны на экране, возможна слепая SQL-инъекция (Blind SQL Injection) на основе различий в ответах при истинных/ложных условиях.

👉 Как воспроизвести (PoC)

⚠️ Должна существовать хотя бы одна запись, чтобы увидеть разницу в ответах при истинных/ложных условиях.

  1. Подготовьте сайт WordPress с установленным плагином Smart Manager, войдите в систему под учётной записью администратора и перейдите на страницу панели плагина Smart Manager (/wp-admin/admin.php?page=smart-manager).

image

  1. Нажмите флажок «Расширенный поиск» (Advanced Search) справа от строки поиска, чтобы открыть окно расширенного поиска.

image

  1. В фильтрах расширенного поиска выберите «Заголовок записи» (Post Title) и «равно» (is), затем введите полезную нагрузку ' OR 1=1 )) # в текстовое поле. После этого нажмите кнопку поиска вверху.

image

  1. При проверке результатов поиска, поскольку условие полезной нагрузки всегда истинно (OR 1=1), извлекаются все записи.

image

  1. С другой стороны, если в фильтрах расширенного поиска выбрать «Заголовок записи» (Post Title) и «равно» (is) и ввести ' OR 1=2 )) # в текстовое поле, записи не будут найдены, так как условие всегда ложно (OR 1=2).

image

image

👉 Дополнительная информация (опционально)

[Причина уязвимости]

При выполнении функции «Расширенный поиск», описанной в PoC выше, формируется следующий пакет, и значения фильтрации (Заголовок записи, равно, ' OR 1=1 )) #), введённые в расширенном поиске, передаются в данные запроса advanced_search_query.

root@kitploit:~
advanced_search_query=[{"condition":"OR","rules":[{"condition":"AND","rules":[{"type":"wp_posts.post_title","operator":"is","value":"' OR 1=1 )) #"}]}]}]

image

При отправке этого пакета вызывается функция get_data_model в файле /wp-content/plugins/smart-manager-for-wp-e-commerce/classes/class-smart-manager-base.php, которая выполняет запросы к базе данных в следующем порядке.

  1. Если существуют данные запроса advanced_search_query, вызывается функция process_search_cond. При этом данные запроса advanced_search_query передаются в значение с ключом search_query в аргументе в виде пары «ключ-значение».

    root@kitploit:~
    search_query=[{"condition":"OR","rules":[{"condition":"AND","rules":[{"type":"wp_posts.post_title","operator":"is","value":"' OR 1=1 )) #"}]}]}]
    

    image

  2. Вызванная функция process_search_cond перебирает значение с ключом search_query, инициализирует значение фильтрации «Заголовок записи» (post_title) в переменной $search_col и инициализирует значение фильтрации ' OR 1=1 )) #, содержащее полезную нагрузку SQL-инъекции, в переменной $search_value.

В функции расширенного поиска пользовательский ввод (' OR 1=1 )) #) напрямую включается в запрос к базе данных без экранирования, что приводит к уязвимости SQL-инъекции. Эта уязвимость позволяет злоумышленникам выполнять произвольные SQL-запросы, что может привести к серьёзным рискам для безопасности, таким как утечка или манипулирование конфиденциальной информацией из базы данных.

[Реализация и выполнение PoC-кода]

⚠️ Реализация PoC-кода запрашивает имя базы данных, используя уязвимость SQL-инъекции.

  1. Откройте PoC-код в редакторе и введите адрес сайта WordPress и учётные данные администратора.

    image

  2. Затем выполните следующую команду для запуска PoC-кода.

    Требуемый модуль requests

    root@kitploit:~
    python poc.py
    

    image

6️⃣ Демонстрация эксплуатации

video

7️⃣ Ссылки

  • https://nvd.nist.gov/vuln/detail/CVE-2025-22710
Скачать инструмент

image

  • Переменные $search_col и $search_value передаются в массив $search_params по ключам search_col (=post_title) и search_value (=' OR 1=1 )) #) соответственно. Затем эта переменная $search_params передаётся в качестве значения с ключом search_params функции create_flat_table_search_query.

    image

  • Далее функция create_flat_table_search_query формирует предложение WHERE SQL-запроса, и на этом этапе search_value (=' OR 1=1 )) #) из ключа search_params, переданного в качестве аргумента, включается в предложение WHERE без какого-либо экранирования.

    image

  • Затем возвращаемое значение функции create_flat_table_search_query (содержащее полезную нагрузку SQL-инъекции) передаётся в качестве аргумента функции process_flat_table_search_query.

    image

  • Функция process_flat_table_search_query строит запрос к базе данных, используя полученный аргумент, инициализируя переменные $select, $from и $where. Здесь мы видим, что полезная нагрузка SQL-инъекции передаётся напрямую в переменную $where без какой-либо проверки.

    image

  • Переменные $select, $from, $where напрямую присваиваются переменной $query_posts_search, и эта переменная в итоге передаётся в качестве аргумента функции, выполняющей запрос к базе данных.

    image