🚀 Не просто читай — прокачивайся! Зарегистрируйся в Kraken Academy и учись на практике: стенды, модули и путь к реальным скиллам.

SQL-инъекция — это не просто уязвимость. Это настоящая «классика жанра» в веб-безопасности, которая уже много лет входит в топ OWASP.
Она позволяет злоумышленнику вмешаться в работу базы данных, изменить её логику и получить доступ к данным, которые должны быть скрыты.

Чтобы грамотно использовать этот вектор атаки — или эффективно защищаться от него, — нужно понимать, как работают базы данных и язык SQL.

Как устроены базы данных и SQL

SQL (Structured Query Language) — язык, с помощью которого приложения общаются с базой данных.
Через SQL можно:

  • Выбирать данные (SELECT).

  • Фильтровать результаты (WHERE, AND, OR).

  • Объединять запросы (UNION).

  • Изменять или удалять записи.

Для пентестера понимание синтаксиса SQL — это ключ к пониманию того, как и где запросы могут быть уязвимы.

Суть SQL-инъекции

SQL-инъекция возникает, когда пользовательский ввод напрямую подставляется в запрос без фильтрации.
В результате атакующий может:

  • Изменить логику авторизации.

  • Получить доступ к данным из других таблиц.

  • Читать конфигурационные файлы на сервере.

  • Даже записывать файлы на диск (например, загружая веб-шелл).

Примеры атак

  1. Обход авторизации
    Подстановка ' OR '1'='1 в поле пароля может дать доступ в систему без учётных данных.

  2. Инъекция с комментарием
    Использование -- или # обрезает часть запроса, которую написал разработчик.

  3. UNION-инъекция
    Объединение с другим запросом, чтобы получить дополнительные данные.

  4. Чтение файлов
    Через функции вроде LOAD_FILE() можно прочитать, например, config.php с паролями.

  5. Запись на диск
    Использование SELECT ... INTO OUTFILE для создания своего скрипта на сервере.

Как находят SQL-инъекции

  • Ручное тестирование — пробные запросы с символами ', ", --, ;.

  • Инструменты — sqlmap, Burp Suite, Havij.

  • Анализ ошибок — сообщения базы (например, You have an error in your SQL syntax) выдают уязвимость.

Как защититься от SQL-инъекций

  • Использовать подготовленные запросы (prepared statements) вместо конкатенации строк.

  • Фильтровать ввод — удалять или экранировать опасные символы.

  • Ограничивать права пользователей базы (минимально необходимые).

  • Скрывать ошибки SQL от пользователей.

Почему SQL-инъекции до сих пор в топе OWASP

  • Многие приложения до сих пор используют небезопасные конструкции.

  • Разработчики недооценивают сложность защиты.

  • Даже в крупных проектах встречаются «забытые» уязвимые страницы.

Хотите научиться находить и использовать SQL-инъекции на практике, а потом грамотно закрывать их?
В модуле «SQL-инъекции: основы» вы сначала разберётесь, как работают базы и запросы, а затем отработаете 12 реальных сценариев атак: от обхода логина до записи файлов на сервер. Завершите обучение практикой по защите — от фильтрации до подготовленных запросов.

Изучить модуль →

📘 Понравилась статья?

Больше практики и реальных заданий — в Kraken Academy.
А чтобы точно ничего не пропустить — подпишись на наш Telegram-канал.

Рекомендуемые статьи

Обложка

Августовский патч Google

Читать полностью →
Обложка

Российская группа EncryptHub

Читать полностью →
Обложка

Обучение кибербезопасности онлайн или офлайн: что выбрать?

Читать полностью →