Énumération de bases de données (non-Oracle)

SQL injection attack, listing the database contents on non-Oracle databases

Contexte

  • Paramètre vulnérable : filtre category (injection via WHERE).

  • L’application renvoie les résultats SQL dans la réponse, permettant un UNION-based extraction.

Objectif

  • Identifier le nom de la table contenant les identifiants, découvrir ses colonnes, extraire les paires username / password et se connecter en tant qu’administrator.

Méthodología (phases concises)

  1. Déterminer le nombre de colonnes Exemple :

    • Incrémenter l’indice jusqu’à provoquer une erreur → connaître le nombre de colonnes pour UNION.

  2. Valider UNION SELECT Exemple (2 colonnes) :

    • Adapter aux N colonnes retournées (utiliser NULL pour colonnes non pertinentes).

  3. Énumérer les tables (bases non-Oracle — information_schema)

    • Permet de lister tables dans le schéma public (Postgres/MySQL compatible).

  4. Énumérer les colonnes d’une table identifiée

  • Remplacer users_arejzy par la table découverte.

  1. Extraire le contenu (dump)

Exemple (colonnes identifiées password_qxbwwb, username_lidnwi) :

  • Ajuster l’ordre/types de colonnes selon la requête vulnérable (utiliser CAST/CONCAT/NULL si besoin).

  1. Bypass / login

  • Une fois username = administrator et son password récupérés, se connecter via la page d’authentification.

  • Alternativement, utiliser un payload d’auth bypass si la table n’est pas directement accessible (ex. username = ' or 1=1-- -), mais l’exfiltration direct est préférable pour preuve.

Résultat attendu

  • Liste des noms de tables, colonnes, puis dump des credentials.

  • Connexion réussie en tant qu’administrator en utilisant les identifiants exfiltrés.

Impact

  • Compromission de comptes (escalade complète si admin), exfiltration d’informations sensibles, modification/suppression de données, extorsion possible.

Mis à jour

Ce contenu vous a-t-il été utile ?