Uploaded by ant1s11

диплом2012

advertisement
Богомазов А.М.
Студент
4 курс, факультет «Прикладная информатика»
Институт инженерных и цифровых технологий
НИУ «БелГУ»
Россия, г. Белгород
SQL инъекции
Аннотация:
Статья посвящена обзору SQL инъекций и утилите SQLMap. Она позволит
ознакомиться с причинами SQL-инъекций и типами.
Ключевые слова: защита, SQL инекции, безопасность, уязвимости.
Bogomazov A.M.
Student
4 course, faculty "Applied Informatics"
Institute of Engineering and Digital Technology
National Research University "BelSU"
Russia, Belgorod
SQL injection
Annotation:
The article is dedicated to the SQL injection review and the SQLMap utility. It will
allow you to get acquainted with the causes of SQL injection and types.
Keywords: protection, SQL injections, security, vulnerabilities.
SQL Injection – это тип атаки, при котором злоумышленник изменяет
логику
SQL
запросов
веб-приложения,
что
позволяет
ему
читать/изменять/удалять значения в базе данных, а иногда – выполнять
произвольный код на стороне сервера. В статье будет рассмотрена
популярная утилита sqlmap для проведения sql-инъекций.
На данный момент, данный тип уязвимости является наиболее опасным
из всех возможных. На протяжении 7 лет, лидирующую строчку «OWASP
TOP-10» возглавляют именно SQL инъекции.
Существует 5 основных причин возникновения этой уязвимости:
1.
Недостаточный уровень или отсутствие валидации входных
параметров, в особенности пользовательского ввода. «Любой входной
параметр — зло»
2.
эту
Необоснованный и слабозащищенный доступ к базам данных. В
категорию
входят
такие
администраторов
и
аутентификации,
большое
факторы
супер-пользователей
количество
как:
большое
(root),
прав
количество
слабая
для
система
второстепенных
администраторов и т.д.
3.
Архитектура. Использование устаревших технологий, отсутствие
контрольных мер, пренебрежение методологией «моделирование угроз».
4.
Наследственность заведомо уязвимого кода, использование
готовых решений с низким уровнем безопасности.
5.
Отсутствие должного уровня абстрагированности исполняемого
кода от данных.
Типы SQL инъекций.
Рассмотрим типы SQL инъекций эксплуатируемые утилитой SQLMap:
1.
запросы
Boolean Based Blind SQL InjectionМетод, при котором HTTPи
ответы
считываются
посимвольно
для
обнаружения
уязвимости.Как только уязвимый параметр обнаружен, SQLMap заменяет или
3
добавляет синтаксически правильные операторы SQL, ожидая реакции
выполнения
этого
кода
сервером.SQLMap
сравнивает
оригинальный
валидный запрос с ответом от запроса с внедрённым зловредным
кодом.SQLMap использует алгоритм деления пополам (bisectional algorithm)
для выборки каждого символа ответа с использованием максимум семи
HTTP-запросов.Там, где ответ отдаётся не в чистом тексте, SQLMap
адаптирует алгоритм большими значениями для определения ответа.
2.
Time-Based Blind SQL InjectionМетод Time Based сам по себе
предполагает, что существует некоторое сравнение на основе времени
запроса и ответа путем инъекции синтаксически правильного оператора SQL
в
уязвимый
параметр.SQLMap
использует
операторы
SQL,
которые
помещают базу данных в режим ожидания для возврата на определенное
количество времени.Использует тот же алгоритм bisectional algorithm, чтобы
выводить символ за символом, SQLMap сравнивает время ответа HTTP с
исходным запросом.
3.
Error-Based SQL InjectionSQLMap использует операторы SQL,
которые могут спровоцировать генерацию специфической ошибки.Утилита
ищет ошибки в HTTP-ответе сервера.Этот метод работает только в том
случае, если веб-приложение настроено на раскрытие сообщений об
ошибках.
4.
UNION
QueryВводимый
SQL
оператор UNION
ALL
SELECT.SQL-инъекция, основанная на запросах UNION, работает на основе
поведения
приложения,
т.е.
когда
приложение
передает
результат
письменного запроса SELECT через определенный цикл или строку
инструкций, которые позволяют выводить выходные данные на содержимое
страницы.В случае, если вывод не циклируется через какой-либо цикл for
или другую строку операторов, SQLMap использует однократную инъекцию
запроса UNION.
5.
Stacked QueryИспользование сложенных запросов. SQLMap
добавляет точку с запятой (;) в значение уязвимого параметра и добавляет
4
инструкцию SQL, которая должна быть выполнена.Используя эту технику,
можно выполнять SQL-выражения, отличные от SELECT. Это полезно для
манипуляции данными, получения доступа на чтение и запись и, наконец,
захвата операционной системой.
6.
Out-Of-BandВ этом методе используется вторичный или другой
канал связи для вывода результатов запросов, запущенных в уязвимом
приложении.Например, вставка выполняется в веб-приложение, а вторичный
канал, такой как DNS-запросы, используется для пересылки данных обратно
на домен злоумышленника.

5
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1.
инъекцией.
Празян К. А., Лачихина А. Б. Классификация атак SQLТиповые
примеры
классических
атак
//Вопросы
радиоэлектроники. – 2015. – №. 10. – С. 88-93.
2.
Назаров И. О. Обеспечение безопасности управления доступом и
информационными потоками в web-системе на основе СУБД //Вестник
Казанского государственного технического университета им. АН Туполева. –
2008. – №. 2. – С. 56-59.
3.
Оладько В. С., Микова С. Ю., Нестеренко М. А. Технологии
защиты интернет-технологий и web-приложений //International scientific
journal. – 2015. – №. 8. – С. 81-85.
6
Download