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

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

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

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

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

Категории

Все категории
Loading categories
POC-WP-XSS2Shell-CVE-2026-64638 — Функциональный PoC для CVE-2026-64638 (XSS2Shell): цепочка от pre-auth XSS до RCE в WordPress Core. Лаборатория Docker + Python-сервер атакующего + технический анализ и меры по смягчению. | Kitploit
Инструменты/GitHubGitHub/686f6c61/poc-wp-xss2shell-cve-2026-64638
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеРазработка Полезной НагрузкиЛаборатории и Практика
GitHub686f6c61/poc-wp-xss2shell-cve-2026-64638

POC-WP-XSS2Shell-CVE-2026-64638

Функциональный PoC для CVE-2026-64638 (XSS2Shell): цепочка от pre-auth XSS до RCE в WordPress Core. Лаборатория Docker + Python-сервер атакующего + технический анализ и меры по смягчению.

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

Популярное

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

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

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

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

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

XSS2Shell — PoC для CVE-2026-64638

Образовательное Proof of Concept цепочки XSS2Shell (CVE-2026-64638), уязвимость XSS → RCE до аутентификации в ядре WordPress, обнаруженная независимо pwn.ai и опубликованная 7 августа 2026 года.


Содержание

  1. Краткое описание
  2. Правовое уведомление
  3. Архитектура цепочки
  4. Требования
  5. Структура репозитория
  6. Краткое руководство по использованию
  7. Проверка эксплуатации
  8. Дополнительная документация

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

CVE-2026-64638 — уязвимость типа cross-site scripting (XSS) отражённая, до аутентификации, на экране входа в WordPress (wp-login.php). Затрагивает все поддерживаемые версии WordPress до 7.0.3, выпущенной 6 августа 2026 года как экстренный security release. Ей присвоен CVSS v4.0 8.9.

Цепочка, названная XSS2Shell, показывает, как, отталкиваясь только от неудачной попытки login с подделанным username, атакующий может:

  1. Внедрить активные DOM-элементы на страницу , используя расхождение между двумя синтаксическими анализаторами: PHP () и WordPress ().
login
strip_tags
wp_kses_post
  • Перехватить поток выполнения собственного JavaScript WordPress (user-profile.js), чтобы выполнить запрос REST JSONP к тому же источнику.
  • Превратить JSONP-ответ в выполнение JavaScript в источнике WordPress с помощью jQuery.globalEval().
  • Связать всё это с техникой Same Origin Method Execution (SOME) Паулоса Йибело (2022), чтобы автоматически нажать кнопку одобрения Application Passwords в аутентифицированной сессии администратора.
  • Захватить полученный Application Password, опубликовать страницу с вредоносным JavaScript и, наконец, загрузить plugin в формате ZIP, который выполняет PHP на сервере.
  • Результат — удалённое выполнение кода (RCE) на сервере WordPress под пользователем web-процесса (обычно www-data), начиная с единственного click администратора по контролируемой атакующим ссылке.


    Правовое уведомление

    Этот репозиторий содержит строго образовательные и защитные материалы.

    • Назначение: демонстрация цепочки эксплуатации в целях обучения, собственного аудита и валидации патчей.
    • Авторизованное использование: запускайте только против установок WordPress, которые принадлежат вам или на которые у вас есть явное письменное разрешение.
    • Запрещено: любое использование против систем третьих лиц без согласия. Автор репозитория не несёт ответственности за неправомерное использование материалов, включённых сюда.
    • Ответственность: оператор несёт единоличную ответственность за соблюдение применимого законодательства (LOPD/RGPD в Испании, CFAA в США и т. д.).

    PoC поставляется с самодостаточным Docker-окружением, единственное назначение которого — служить локальной и воспроизводимой целью.


    Архитектура цепочки

    root@kitploit:~
    ┌─────────────────────────────────────────────────────────────────────┐
    │  1. XSS pre-auth en wp-login.php                                    │
    │     log=< area id=ajaxurl href=/?rest_route=/&_jsonp=...>           │
    │     (discrepancia strip_tags ↔ wp_kses_post)                        │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  2. user-profile.js dispara .trigger('click')                       │
    │     DOM clobbering de ajaxurl → petición POST al origen             │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  3. REST JSONP responde application/javascript                      │
    │     jQuery.globalEval() ejecuta el callback en el origen WP         │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │  callback = window.opener
                                               │            .approve.click
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  4. SOME: click() cruza la frontera opener→admin                    │
    │     authorize-application.php#approve se pulsa en sesión admin      │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  5. WP crea Application Password → redirige a success_url           │
    │     El atacante captura user_login + password en callback.php       │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │  HTTP Basic REST
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  6. POST /wp-json/wp/v2/pages  → publica página con <script>        │
    │     El admin visita la página → JS en origen WP con sesión admin    │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  7. fetch update.php?action=upload-plugin  → sube payload.zip       │
    │     PHP del plugin es accesible directamente sin activarlo          │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  8. RCE confirmada: GET /wp-content/plugins/payload/shell.php       │
    └─────────────────────────────────────────────────────────────────────┘
    

    Требования

    PoC создана для запуска на macOS или Linux с:

    • Docker 24+ и Docker Compose v2 (для локальной цели).
    • Python 3.9+ (для опционального оркестратора).
    • PHP 8.1+ с расширением zip (для ручной сборки payload, опционально; уже собранный ZIP включён в payload/).
    • Современный браузер на основе Chromium или Firefox.

    Устанавливать WordPress вручную не требуется: docker-compose.yml поднимает уязвимый WordPress 7.0.2 (последняя версия до патча) вместе с MariaDB.


    Структура репозитория

    root@kitploit:~
    POC XSS2Shell (CVE-2026-64638)/
    ├── README.md                       ← Este archivo
    ├── docker-compose.yml              ← Blanco: WordPress 7.0.2 + MariaDB
    ├── .env.example                    ← Variables de configuración
    ├── exploit.py                      ← Orquestador en Python (opcional)
    ├── attacker/                       ← Infraestructura del atacante
    │   ├── index.html                  ← Página cebo con la cadena SOME
    │   ├── callback.php                ← Receptor de la Application Password
    │   └── server.py                   ← Servidor estático + PHP embebido
    ├── payload/                        ← Plugin ZIP malicioso
    │   ├── build_payload.py            ← Generador del ZIP
    │   ├── shell.php                   ← Webshell mínimo
    │   └── payload.zip                 ← ZIP preconstruido (listo para usar)
    └── docs/
        ├── ANALISIS.md                 ← Análisis técnico detallado
        └── MITIGACION.md               ← Guía de mitigación y hardening
    

    Краткое руководство по использованию

    1. Запуск цели (уязвимый WordPress 7.0.2)

    root@kitploit:~
    cp .env.example .env
    docker compose up -d
    

    WordPress станет доступен по адресу http://localhost:8080. Пройдите мастер установки и создайте пользователя администратора (например admin / admin-password).

    Dockerfile привязывает образ к wordpress:7.0.2-php8.2-apache — последней версии до патча 7.0.3.

    2. Запуск инфраструктуры атакующего

    root@kitploit:~
    # En otro terminal, dentro de attacker/
    python3 server.py
    

    Сервер атакующего слушает на http://localhost:9000 и предоставляет:

    • / → index.html (страница-приманка).
    • /callback.php → приёмник Application Password.

    3. Имитация click администратора

    1. Войдите как администратор на http://localhost:8080/wp-admin.
    2. В той же сессии браузера откройте новую вкладку и посетите http://localhost:9000/.
    3. Вы увидите единственную кнопку «Approve Application». При нажатии на неё выполняется вся цепочка автоматически.

    4. Наблюдение за захватом учётных данных

    В терминале, где запущен server.py, появится строка вида:

    root@kitploit:~
    [+] Application Password recibida para el usuario 'admin':
        XXXX XXXX XXXX XXXX XXXX XXXX
    

    Учётные данные также сохраняются в attacker/captured_credentials.txt.

    5. Проверка RCE

    Через несколько секунд оркестратор из index.html выполнит следующее:

    • Опубликует страницу, выполняющую JavaScript в источнике WordPress.
    • Загрузит плагин payload.zip в wp-content/plugins/payload/.

    Проверьте выполнение кода с помощью:

    root@kitploit:~
    curl -sI http://localhost:8080/wp-content/plugins/payload/shell.php
    

    Заголовок Hacked: true и тело JSON подтверждают RCE.


    Проверка эксплуатации

    После завершения цепочки следующие endpoints служат доказательством:

    РесурсОжидаемое подтверждение
    GET /wp-content/plugins/payload/shell.phpЗаголовок Hacked: true + JSON {"rce":true,"user":"www-data"}
    attacker/captured_credentials.txtЗахваченный Application Password
    wp-admin → Aplicaciones → Contraseñas de aplicaciónНовая запись с названием «SomeApp»

    Дополнительная документация

    • docs/ANALISIS.md — подробный технический анализ каждого этапа цепочки со ссылками на исходный код WordPress.
    • docs/MITIGACION.md — рекомендуемые меры защиты, hardening и проверка патча 7.0.3.

    Благодарности

    • Оригинальное исследование и публикация: pwn.ai — https://pwn.ai/blog/xss2shell
    • Лежащая в основе техника SOME: Paulos Yibelo (2022), опубликована в блоге pwn.ai и номинирована на Top Web Hacking Techniques 2022 года.
    • PoC и упаковка этого репозитория: собственная работа в образовательных целях.

    Лицензия

    Распространяется под лицензией MIT. Подробнее см. в файле LICENSE.

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