SQL инъекции - Студенческий научный форум

XI Международная студенческая научная конференция Студенческий научный форум - 2019

SQL инъекции

Богомазов А.М. 1
1Белгородский государственный национальный исследовательский университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

SQL Injection – это тип атаки, при котором злоумышленник изменяет логику SQL запросов веб-приложения, что позволяет ему читать/изменять/удалять значения в базе данных, а иногда – выполнять произвольный код на стороне сервера. В статье будет рассмотрена популярная утилита sqlmap для проведения sql-инъекций.

На данный момент, данный тип уязвимости является наиболее опасным из всех возможных. На протяжении 7 лет, лидирующую строчку «OWASP TOP-10» возглавляют именно SQL инъекции.

Существует 5 основных причин возникновения этой уязвимости:

Недостаточный уровень или отсутствие валидации входных параметров, в особенности пользовательского ввода. «Любой входной параметр — зло»

Необоснованный и слабозащищенный доступ к базам данных. В эту категорию входят такие факторы как: большое количество администраторов и супер-пользователей (root), слабая система аутентификации, большое количество прав для второстепенных администраторов и т.д.

Архитектура. Использование устаревших технологий, отсутствие контрольных мер, пренебрежение методологией «моделирование угроз».

Наследственность заведомо уязвимого кода, использование готовых решений с низким уровнем безопасности.

Отсутствие должного уровня абстрагированности исполняемого кода от данных.

Типы SQL инъекций.

Рассмотрим типы SQL инъекций эксплуатируемые утилитой SQLMap:

Boolean Based Blind SQL InjectionМетод, при котором HTTP-запросы и ответы считываются посимвольно для обнаружения уязвимости.Как только уязвимый параметр обнаружен, SQLMap заменяет или добавляет синтаксически правильные операторы SQL, ожидая реакции выполнения этого кода сервером.SQLMap сравнивает оригинальный валидный запрос с ответом от запроса с внедрённым зловредным кодом.SQLMap использует алгоритм деления пополам (bisectional algorithm) для выборки каждого символа ответа с использованием максимум семи HTTP-запросов.Там, где ответ отдаётся не в чистом тексте, SQLMap адаптирует алгоритм большими значениями для определения ответа.

Time-Based Blind SQL InjectionМетод Time Based сам по себе предполагает, что существует некоторое сравнение на основе времени запроса и ответа путем инъекции синтаксически правильного оператора SQL в уязвимый параметр.SQLMap использует операторы SQL, которые помещают базу данных в режим ожидания для возврата на определенное количество времени.Использует тот же алгоритм bisectional algorithm, чтобы выводить символ за символом, SQLMap сравнивает время ответа HTTP с исходным запросом.

Error-Based SQL InjectionSQLMap использует операторы SQL, которые могут спровоцировать генерацию специфической ошибки.Утилита ищет ошибки в HTTP-ответе сервера.Этот метод работает только в том случае, если веб-приложение настроено на раскрытие сообщений об ошибках.

UNION QueryВводимый SQL оператор UNION ALL SELECT.SQL-инъекция, основанная на запросах UNION, работает на основе поведения приложения, т.е. когда приложение передает результат письменного запроса SELECT через определенный цикл или строку инструкций, которые позволяют выводить выходные данные на содержимое страницы.В случае, если вывод не циклируется через какой-либо цикл for или другую строку операторов, SQLMap использует однократную инъекцию запроса UNION.

Stacked QueryИспользование сложенных запросов. SQLMap добавляет точку с запятой (;) в значение уязвимого параметра и добавляет инструкцию SQL, которая должна быть выполнена.Используя эту технику, можно выполнять SQL-выражения, отличные от SELECT. Это полезно для манипуляции данными, получения доступа на чтение и запись и, наконец, захвата операционной системой.

Out-Of-BandВ этом методе используется вторичный или другой канал связи для вывода результатов запросов, запущенных в уязвимом приложении.Например, вставка выполняется в веб-приложение, а вторичный канал, такой как DNS-запросы, используется для пересылки данных обратно на домен злоумышленника.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

Празян К. А., Лачихина А. Б. Классификация атак SQL-инъекцией. Типовые примеры классических атак //Вопросы радиоэлектроники. – 2015. – №. 10. – С. 88-93.

Назаров И. О. Обеспечение безопасности управления доступом и информационными потоками в web-системе на основе СУБД //Вестник Казанского государственного технического университета им. АН Туполева. – 2008. – №. 2. – С. 56-59.

Оладько В. С., Микова С. Ю., Нестеренко М. А. Технологии защиты интернет-технологий и web-приложений //International scientific journal. – 2015. – №. 8. – С. 81-85.

Просмотров работы: 12