Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-57821-PoC-Exploit — 🔐 CVE-2026-57821 - Apache Fineract SQL Injection Toolkit 📚 Deux scripts Python pour des tests de sécurité autorisés : verifier.py (détection sûre, sans extraction) et exploit.py (analyse approfondie). Prend en charge 11 types de bases de données. Idéal pour comprendre les vulnérabilités d'injection SQL. Tests légaux uniquement ⚠️ à des fins éducatives et de recherche uniquement. | Kitploit
Outils/GitHubGitHub/tc4dy/cve-2026-57821-poc-exploit
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationSécurité des Bases de Données

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHub
tc4dy/cve-2026-57821-poc-exploit

CVE-2026-57821-PoC-Exploit

Voir le dépôt
3il y a 1 moisPas encore vérifié

À propos

🔐 CVE-2026-57821 - Apache Fineract SQL Injection Toolkit 📚 Deux scripts Python pour des tests de sécurité autorisés : verifier.py (détection sûre, sans extraction) et exploit.py (analyse approfondie). Prend en charge 11 types de bases de données. Idéal pour comprendre les vulnérabilités d'injection SQL. Tests légaux uniquement ⚠️ à des fins éducatives et de recherche uniquement.

Partager

CVE-Picture

🛡️ CVE-2026-57821 – Injection SQL Apache Fineract

⚠️ AVIS LÉGAL ET ÉTHIQUE
Ce kit est fourni strictement à des fins éducatives, de formation et de tests de sécurité autorisés.
Toute utilisation non autorisée contre un système sans autorisation écrite explicite est illégale et viole les lois relatives à la cybercriminalité.
L'auteur décline toute responsabilité en cas d'usage abusif ou de dommages.
Vous êtes seul responsable de vos actions.


📋 Présentation de la vulnérabilité

CVE-2026-57821 est une vulnérabilité de type Injection SQL découverte dans le point de terminaison de l'API de liste des bureaux d'Apache Fineract.

🎯 Composant affecté

AttributDétail
Point de terminaison/api/v1/offices
ParamètreorderBy
MéthodeGET
Authentification requiseOui (utilisateurs authentifiés uniquement)
Versions affectéesApache Fineract ≤ 1.14.0
Version corrigéeApache Fineract 1.15.0

🧠 Comment cela fonctionne

La vulnérabilité existe parce que le paramètre orderBy est directement intégré dans les requêtes SQL sans assainissement approprié. Un attaquant disposant d'identifiants valides peut injecter des sous-requêtes entourées de parenthèses () dans le paramètre orderBy.

Pourquoi cela contourne les correctifs précédents :

  • CVE-2024-32838 a introduit un ColumnValidator pour assainir les clauses ORDER BY
  • Le validateur ne détecte pas les sous-requêtes nues entre parenthèses
  • Cela permet l'exécution arbitraire de SQL dans le contexte de ORDER BY

Exemple de vecteur d'attaque :

GET /api/v1/offices?orderBy=(SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)&limit=1

⚡ Impact potentiel

ImpactDescription
Exfiltration de donnéesL'injection SQL aveugle basée sur le temps peut extraire un contenu sensible de la base de données
Déni de serviceLes requêtes lourdes peuvent épuiser les ressources du pool de connexions

👤 Découverte & Divulgation


🗄️ Systèmes de bases de données pris en charge

Ce kit détecte et adapte automatiquement les techniques d'exploitation pour 11 moteurs de bases de données différents :


🛠️ Composants du kit

Ce projet fournit deux scripts Python pour différents scénarios d'évaluation de sécurité :

📊 verifier.py – Outil de vérification sûr et minimal

Objectif : Prouver rapidement l'existence de la vulnérabilité sans extraire de données.

Ce qu'il fait :

  • Envoie des charges utiles de test spécifiques à la base de données
  • Détecte les délais temporels ou les messages d'erreur
  • Rapporte VULNERABLE ou NOT VULNERABLE pour chaque type de base de données
  • N'exfiltre aucune donnée

✅ Avantages :

  • Extrêmement rapide (s'achève en quelques secondes)
  • Risque juridique faible (valide uniquement la présence)
  • Idéal pour le scan de sécurité initial
  • Sortie adaptée aux rapports de conformité

📋 Cas d'usage : Évaluation de premier passage pour déterminer si la cible est vulnérable.

🔬 exploit.py – Analyseur de sécurité complet

Objectif : Exercer pleinement la vulnérabilité pour extraire des informations de la base de données.

Ce qu'il fait :

  • Détecte automatiquement le type de base de données
  • Utilise la recherche binaire pour extraire caractère par caractère
  • Récupère : version, utilisateur courant, nom de la base, liste des tables (configurable)
  • MSSQL : extraction basée sur les erreurs
  • Autres : extraction basée sur le temps avec calibrage de référence

✅ Avantages :

  • Fournit une preuve concrète de l'impact
  • Démontre l'étendue complète de la vulnérabilité
  • Journalisation détaillée avec sortie colorée

📋 Cas d'usage : Analyse de sécurité approfondie après confirmation de la vulnérabilité.

🔍 Différence clé : verifierPoC.py vous indique si c'est vulnérable ; exploit.py vous montre ce qui peut être extrait. Les deux jouent des rôles distincts mais complémentaires dans un flux de travail d'évaluation de sécurité.


⚙️ Installation et configuration

Prérequis

  • Python 3.6+
  • Bibliothèque requests
root@kitploit:~
pip install requests

⚙️ Variables de configuration

Modifiez les variables suivantes en haut des deux scripts :

🚀 Guide d'utilisation

1️⃣ exploit.py - Analyse approfondie

root@kitploit:~
python3 exploit.py

Sortie attendue :

root@kitploit:~
CVE-2026-57821 - Apache Fineract Vulnerability Verifier
══════════════════════════════════════════════════════════════════════════════════════
@tc4dy is here :) Good Luck!

CONNECTION SUCCESS
BASELINE: 0.234s
STARTING VULNERABILITY VERIFICATION
VERIFICATION RESULTS
PostgreSQL: VULNERABLE
MySQL: NOT VULNERABLE
MariaDB: NOT VULNERABLE
Oracle: NOT VULNERABLE
MSSQL: NOT VULNERABLE
CONCLUSION: TARGET IS VULNERABLE (CVE-2026-57821 CONFIRMED)

Interpretation: If VULNERABLE appears for any database type, the target is affected.

🎯 Spécifications techniques

Score CVSS Mesure Valeur Score de base CVSS v3.1 8,1 (Élevé) Vecteur CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H Vecteur d'attaque Réseau Privilèges requis Faible Interaction de l'utilisateur Aucune Score EPSS

root@kitploit:~
0,29 % (probabilité d'exploitation dans les 30 jours)

Correspondance CWE

root@kitploit:~
CWE-89 : Neutralisation incorrecte d'éléments spéciaux utilisés dans une commande SQL ('Injection SQL')

🧪 Plongée technique approfondie

Pourquoi la charge utile fonctionne

Le code vulnérable dans Apache Fineract 1.14.0 :

root@kitploit:~
// Simplified vulnerable logic
String orderBy = request.getParameter("orderBy");
if (ColumnValidator.isValid(orderBy)) {
    // VALIDATOR FAILS FOR: "(SELECT ...)"
    // Only checks against simple column names
    String sql = "SELECT * FROM offices ORDER BY " + orderBy;
    // Executes query with user input directly
}

Exemple de charge utile de l'attaquant :

root@kitploit:~
GET /api/v1/offices?orderBy=(SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)&limit=1

SQL résultant :

root@kitploit:~
SELECT * FROM offices ORDER BY (SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)

Le ColumnValidator vérifie les noms de colonnes mais manque la sous-requête imbriquée, permettant l'exécution arbitraire de SQL.

🛡️ Atténuation

Télécharger l’outil
Divulgation d'informations
Les techniques basées sur les erreurs peuvent révéler la structure et les données de la base
AttributDétail
Découvreur / RapporteurTerence Monteiro (équipe Apache Fineract)
Date de divulgation publique14 juillet 2026
Version corrigéeApache Fineract 1.15.0
Annonce officielleListe de diffusion Apache
Correctif GitHubPR #6048
Base de donnéesMéthode de détectionTechnique d'exploitation
PostgreSQLBasée sur le temps (pg_sleep)Aveugle basée sur le temps
MySQLBasée sur le temps (SLEEP)Aveugle basée sur le temps
MariaDBBasée sur le temps + @@version_commentAveugle basée sur le temps
MSSQLBasée sur les erreurs (échec de CONVERT)Basée sur les erreurs
OracleBasée sur le temps (DBMS_LOCK.SLEEP)Aveugle basée sur le temps
SQLiteRequête lourde (jointure cartésienne)Basée sur le temps (lourde)
FirebirdRequête lourde (jointure cartésienne)Basée sur le temps (lourde)
DB2Requête lourde (jointure cartésienne)Basée sur le temps (lourde)
InformixRequête lourde (jointure cartésienne)Basée sur le temps (lourde)
H2Requête lourde (jointure cartésienne)Basée sur le temps (lourde)
Inconnue (générique)Repli sur PostgreSQLBasée sur le temps
VariableDescriptionDéfaut
TARGETURL de l'API Fineracthttp://localhost:8080/fineract-provider/api/v1/offices
USERNAMENom d'utilisateur d'authentification APImifos
PASSWORDMot de passe d'authentification APIpassword
TENANT_IDIdentifiant du locatairedefault
BASE_SLEEPDurée d'attente pour les tests basés sur le temps (exploit.py)6
SLEEP_SECONDSDurée d'attente pour les tests basés sur le temps (verifier.py)5
TIMEOUTDélai d'expiration des requêtes HTTP25 (exploit) / 15 (verifier)
MAX_RETRIESNombre de nouvelles tentatives pour les requêtes échouées2
ActionPriorité
Mettre à niveau vers Apache Fineract 1.15.0+🔴 Critique
Appliquer le correctif PR #6048🔴 Critique
Règle WAF : Bloquer orderBy contenant (SELECT, SLEEP(, pg_sleep(, WAITFOR🟠 Élevée
Surveiller les journaux pour orderBy avec parenthèses ou mots-clés de sous-requête🟠 Élevée
Surveillance du pool de connexions de la base pour détecter l'épuisement des ressources🟡 Moyenne