Énumération de la base de données (Oracle)
SQL injection attack, listing the database contents on Oracle
Contexte / vulnérabilité : filtre
categoryvulnérable à l’injection SQL (résultats renvoyés dans la réponse). UtiliserORDER BY/UNIONpermet d’énumérer et d’extraire des données depuis les vues système Oracle.Objectif : identifier la table d’utilisateurs, lister ses colonnes, extraire les paires
username/passwordet se connecter en tant qu’administrator.
Étapes concises (payloads fournis)
Déterminer le nombre de colonnes Tester
ORDER BYincrémental jusqu’à erreur :Valider UNION SELECT (même nombre de colonnes que la requête originale) :
Lister les tables (Oracle) — utiliser
ALL_TABLES:
(Adapter NULL/nombre de colonnes selon la requête vulnérable.)
Lister les colonnes d’une table identifiée (ici USERS_JREIFY) :
Remarque : Oracle normalise les noms non-quotés en MAJUSCULES.
Extraire le contenu (dump) — exemple avec colonnes identifiées :
Ajuster l’ordre/types; utiliser TO_CHAR, CAST ou NULL pour faire correspondre les types si nécessaire.
Connexion admin
Utiliser les identifiants exfiltrés sur la page de login.
Ou, si nécessaire, exécuter un bypass d’authentification une fois les colonnes confirmées.
Précisions techniques utiles
Si UNION échoue pour cause de types différents, remplacer les colonnes par NULL ou TO_CHAR(col) pour forcer la compatibilité.
Les vues exposant métadonnées (ALL_TABLES, ALL_TAB_COLUMNS, DBA_*) peuvent être restreintes par les privilèges du compte DB ; l’accès varie selon les droits applicatifs.
Oracle requiert souvent des noms en MAJUSCULES pour la comparaison table_name = 'USERS_JREIFY' sauf si la table a été créée entre guillemets.
Impact
Compromission d’identifiants, élévation d’accès, exfiltration/modification de données, contrôle applicatif complet.
Mis à jour
Ce contenu vous a-t-il été utile ?