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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-43408 — Технический анализ и proof-of-concept эксплойт для CVE-2021-43408, уязвимости SQL-инъекции в плагине WordPress Duplicate Post версии 1.1.9, с пошаговым руководством по эксплуатации и рекомендациями по устранению. | Kitploit
Инструменты/GitHubGitHub/tuannq2299/cve-2021-43408
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на Проникновение
GitHubtuannq2299/cve-2021-43408

CVE-2021-43408

Технический анализ и proof-of-concept эксплойт для CVE-2021-43408, уязвимости SQL-инъекции в плагине WordPress Duplicate Post версии 1.1.9, с пошаговым руководством по эксплуатации и рекомендациями по устранению.

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

Популярное

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

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

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

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

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

CVE-2021-43408: плагин WordPress Duplicate Post версии 1.1.9 — SQL-инъекция

I. Обзор

1. Что такое WordPress

WordPress — это CMS (система управления контентом) с открытым исходным кодом, представляющая собой систему управления содержимым. Вместо использования HTML-кода WP написан на языке программирования PHP и использует базу данных MySQL. WordPress был основан программистами Matt Mullenweg и Mike Little. В настоящее время WordPress принадлежит компании Automattic со штаб-квартирой в Сан-Франциско, Калифорния, США.

2. CVE-2021-43408

Плагин Duplicate Post для WordPress версии 1.1.9 и ниже подвержен ошибке SQL-инъекции. Данный тип эксплуатации позволяет атакующему внедрять SQL-запросы, с помощью которых можно читать, изменять и даже удалять ресурсы в базе данных. Эта уязвимость может быть использована любым аутентифицированным пользователем, имеющим право использовать функции плагина Duplicate Post. По умолчанию таким правом обладает только администратор, однако права могут быть изменены, и тогда редактор, автор, участник и даже подписчик смогут использовать этот плагин. CVE-2021-43408 была обнаружена «11/19/2021» и оценена как HIGH по шкале CVSS.

II. Детальный анализ

Коренная причина этой уязвимости заключается в том, что данные, отправленные в запросе от пользователя, не проходят санитизацию перед выполнением SQL. Если точнее, то в файле post/handler.php, в функции cdn_insert_post()

root@kitploit:~
 function cdp_insert_post($id, $data, $times, $areWePro, $isChild = false, $p_ids = null, $site) {

        // Get Wordpress database
        global $wpdb;

        // Create empty array for new id(s) and error(s)
        $results = array('ids' => array(), 'error' => 0, 'counter' => 0);

        // Get Counter value
        $prefix = (($site != -1) ? $wpdb->get_blog_prefix($site) : $wpdb->get_blog_prefix());
        $newestId = $wpdb->get_results("SELECT post_id FROM {$prefix}postmeta WHERE meta_key = '_cdp_origin' AND meta_value = {$id} ORDER BY post_id DESC LIMIT 1", ARRAY_A);

$id контролируется атакующим

Переменная $id передаётся в функцию, содержащую SQL-запрос, без какой-либо санитизации. Эта функция вызывается через WordPress Ajax wp_ajax_cdp_action_handling. Видно, что параметр id передаётся через функцию cdn_sanitize_array, где поля данных записи проходят через функцию sanitize_text_field, которая экранирует любые кавычки ' в строке данных.

Поля данных обрабатываются с помощью sanitize_text_field

Однако в коде есть уязвимость: при передаче данных целочисленного поля в выполняемый SQL-запрос (поле id) атакующий может воспользоваться этим и вставить дополнительную SQL-команду в значение этого поля. Таким образом, чтобы контролировать SQL-запрос, атакующему достаточно избегать использования символа '.

III. Демонстрация

1. Окружение

  • ОС: Windows
  • Xampp: 7.1.33
  • WordPress: 5.0
  • Плагин Duplicate Post: 1.1.9

2. PoC

Шаг 1: Войдите в систему как администратор, установите плагин Duplicate Post версии 1.1.9. Этот плагин помогает пользователям дублировать существующие записи.

Шаг 2: Перейдите в раздел Post, выберите одну запись, выберите действие Copy и нажмите Apply.

Шаг 3: Выберите Setting: Default и нажмите Copy.

Шаг 4: Перехватите HTTP-запрос, здесь важно обратить внимание на поле id; видно, что данные этого поля имеют целочисленный тип.

Шаг 5: Вставьте payload SQL-инъекции, отправьте запрос и обратите внимание, что сервер возвращает ответ только через 9 секунд -> SQL-инъекция прошла успешно. Payload: 1 and (select*from(select(sleep(9)))a)--

3. Эксплуатационный код

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

  • Обновите плагин до версии 1.2.0 или выше

V. Ссылки

  • https://appcheck-ng.com/security-advisory-duplicate-post-wordpress-plugin-sql-injection-vulnerability
Скачать инструмент