May 9, 2025

SQL Injection

SQL Injection- Веб-приложение, использующее SQL, может превратиться в SQL Injection, когда в SQL-запрос включаются данные, предоставленные пользователем.

Типы SQL Injection:

In-Band SQL Injection - самый простой тип обнаружения и эксплуатации; In-Band означает, что для использования уязвимости и получения результатов используется один и тот же метод связи, например, обнаружение уязвимости SQL Injection на странице веб-сайта и последующее извлечение данных из базы данных на той же странице

Error-Based SQL Injection - этот тип наиболее полезен для легкого получения информации о структуре базы данных, посколько сообщения об ошибках из базы данных выводятся прямо на экран браузера. Часто это можно использовать для перечисления всей базы данных

Union-Based SQL Injection - этот тип использует оператор SQL Union наряду с оператором SELECT для возврата дополнительных результатов на страницу. Этот метод язвялется наиболее распространенным способом извлечения больших объемов данных через уязвимость SQL Injection

Blind SQL Injection - в отличие от In-Band SQL Injection, где мы можем видеть результаты нашей атаки прямо на экране, Blind SQL Injection - когда мы получаем мало или вообще не получаем обратной связи для подтверждения того, были ли наши инъецированные запросы на самом деле успешными или нет, это происходит, потому, что сообщения об ошибках отключены, но инъекция все равно работает независимо. Вас может удивить, что все, что нам нужно, - это немного обратной связи для успешного перечисления всей базы данных.

Out-of-band SQL Injection - не так распространена, поскольку зависит либо от определенных функций, включенных на сервере базы данных, либо от бизнес-логики веб-приложения, которая выполняет некий внешний сетевой вызов на основе результатов SQL-запроса.

Out-of-band SQL Injection атака классифицируется по наличию двух различных каналов связи: один для запуска атаки, а другой для сбора результатов. Например, каналом атаки может быть веб-запрос, а каналом сбора данных может быть мониторинг HTTP/DNS-запросов, отправленных в службу, которой вы управляете.

1) Злоумышленник делает запрос на веб-сайт, уязвимый для SQL-инъекции, с полезной нагрузкой инъекции.

2) Веб-сайт делает SQL-запрос к базе данных, которая также передает полезную нагрузку хакера.

3) Полезная нагрузка содержит запрос, который заставляет HTTP-запрос вернуться на машину хакера, содержащую данные из базы данных.