Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Определение уязвимости типа SQL-инъекция





Содержание

 

Введение.......................................................................................................... 3

Постановка задачи........................................................................................ 3

 

1. Определение уязвимости типа SQL-инъекция............................. 4

1.1 История появления уязвимости................................................ 4

2. Классификация уязвимостей.......................................................... 5

2.1 Основные классы SQL-инъекций.............................................. 5

2.1.1 UNION query SQL injection............................................ 5

2.1.2 Error-based SQL injection................................................ 5

2.1.3 Stacked queries SQL injection.......................................... 6

2.1.4 Boolean-based blind SQL injection................................... 6

2.1.5 Time-based blind SQL injection........................................ 7

2.2.1 Классификация уязвимости в соответствии с ГОСТ............. 7

2.2.2 Паспорт уязвимости............................................................... 8

3. Реализация уязвимости.................................................................. 9

4. Способы защиты от уязвимости.................................................. 12

4.1 Соблюдение правил безопасности......................................... 12

4.2 Тестирование КВИС на наличие уязвимости........................ 13

4.3 Фильтрация потока данных во время работы системы........ 15

Выводы......................................................................................................... 17

Список использованных источников...................................................... 18

 

Введение

 

В работе рассматриваются виды уязвимостей типа SQL-инъекция, способы её реализации и методы защиты критически важных информационных сегментов от этой уязвимости. В работе представлен паспорт уязвимости, приведена классификация видов данной уязвимости, а также реализован взлом базы данных сайта в сети Интернет, методом SQL-инъекции.

 

Постановка задачи

 

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

 

В процессе исследования будут решены следующие задачи:

Определение уязвимости типа SQL-инъекция

2. Классификация уязвимостей типа SQL-инъекция и представление паспорта уязвимости

3. Реализация уязвимости на примере реального сайта в сети Интернет

4. Представление способов и методов защиты от уязвимости

 

 

Определение уязвимости

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

Внедрение SQL-кода (англ. SQL injection) — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.

Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.

 

История появления уязвимости

С момента изобретения способа хранения данных в реляционных базах, возникали попытки НСД к хранящейся информации. В 1999 году, в каталог CVE (Common Vulnerabilities and Exposures) стали заносить SQL-инъекции, присвоив им идентификатор 'CWE 89’ (Improper Sanitization of Special Elements used in an SQL Command ('SQL Injection')). Начиная с 2003 года и по нынешний день, SQL-инъекция, как тип уязвимости, остается в топ-10 списка CVE уязвимостей.

В 2012 году представитель компании Barclaycard утверждал, что 97% данных нарушений являются результатом инъекции SQL. В конце 2011 года и до начала 2012 г., то есть только за один месяц, более одного миллиона серверов пострадало от инъекции Lilupophilupop SQL. В 2010 году официальный сайт Организации Объединенных Наций также стал жертвой SQL- инъекции.

По статистике за 2015 год, собранной компанией Wallarm, было зафиксировано, что SQL-инъекции составляют ~38% атак на веб-ресурсы (первое место). Это обусловлено наличием в открытом доступе множества инструментов для автоматизированного тестирования веб-приложений на этот тип уязвимости. Кроме того, риск уязвимости крайне высок — успешная эксплуатация сразу же открывает перед злоумышленником возможность получения полного доступа к базе данных.

 

Классификация уязвимостей

2.1 Основные классы SQL-инъекций:

 

UNION query SQL injection

Классический вaриант внедрения SQL-

кода, когда в уязвимый параметр передается выражение, нaчинающееся с «UNION ALL SELECT». Эта техника работает, когда веб-приложения нaпрямую возвращают результат вывода команды SELECT на страницу: с использованием цикла for или похожим способом, так что каждая запись полученной из БД выбoрки последовательно выводится на страницу. Sqlmap может также эксплуатировать ситуацию, кoгда возвращается только первая запись из выборки (Partial UNION query SQL injection).

 

Error-based SQL injection

В случае этой атаки сканер заменяет или добавляет в уязвимый параметр синтаксически неправильное выражение, после чего парсит HTTP-ответ (заголовки и тело) в поиске ошибок DBMS, в которых содержалась бы заранее известная инъецированная последовательность символов и где-то «рядом» вывод на интересующий нас подзапрос. Эта техника работает только тогда, когда веб-приложение по каким-то причинам (чаще всего в целях отладки) раскрывает ошибки DBMS.

Stacked queries SQL injection

Сканер проверяет, поддерживает ли веб-приложение последовательные запросы, и, если они выполняются, добавляет в уязвимый параметр HTTP-запроса точку с запятой (;) и следом внедряемый SQL-запрос. Этот прием в основном используется для внедрения SQL-команд, отличных от SELECT, например, для манипуляции данными (с помощью INSERT или DELETE). Примечательно, что техника потенциально может привести к возможности чтения/записи из файловой системы, а также выполнению команд в ОС. Правда, в зависимости от используемой в качестве бэк-энда системы управления базами данных, а также пользовательских привилегий.

 

Boolean-based blind SQL injection

Реализация так называемой «слепой» инъекции: данные из БД в «чистом» виде уязвимым веб-приложением нигде не возвращаются. Прием также называется дедуктивным. Sqlmap добавляет в уязвимый параметр HTTP-запроса синтаксически правильно составленное выражение, содержащее подзапрос SELECT (или любую другую команду для получения выборки из базы данных). Для каждого полученного HTTP-ответа выполняется сравнение headers/body страницы с ответом на изначальный запрос — таким образом, утилита может символ за символом определить вывод внедрённого SQL-выражения. В качестве альтернативы пользователь может предоставить строку или регулярное выражение для определения «true»-страниц (отсюда и название атаки).

 

Паспорт уязвимости

Паспорт уязвимости КВИС

№ п/п Элементы описания уязвимости КВИС Описание уязвимости КВИС
  Наименование уязвимости SQL инъекция
  Идентификатор уязвимости CWE 89
  Краткое описание уязвимости Прямой ввод контролируемых атакающим данных в переменные, используемые в SQL командах.
  Класс уязвимости Уязвимость кода
  Наименование уязвимого элемента и его версия MySQL server всех версий.
  Место возникновения (проявления) уязвимости Уязвимость существует в SQL базах данных, из-за отсутствия проверки обрабатываемых параметров запроса.
  Идентификатор типа недостатка Нет данных
  Дата выявления уязвимости 03.06.1999
  Автор, опубликовавший информацию о выявленной уязвимости Oracle corp.
  Способ (правило) обнаружения уязвимости Выполнение пошаговой инструкции
  Критерии опасности уязвимости Превышение установленного значения вероятности риска
  Степень опасности уязвимости Средняя
  Возможные меры по устранению уязвимости Принятие мер по устранению возможностей SQL-инъекций.

 

Реализация уязвимости.

Для примера был взят случайный сайт в сети интернет. В нашем случае это сайт по продаже компьютерного оборудования (принтеров)

Целью является получение доступа в административную часть сайта.

 

(Мы вошли под тестовой учетной записью.)

 

 

Добавляем в поисковую строку всякий «мусор» чтобы увидеть какую-нибудь ошибку на сайте. Таким образом мы поймем, что запрос рабочий. Далее немного меняем параметр «name», чтобы убедится, что он идет напрямую в базу данных сайта.

 

Получаем следующий результат:

 

 

Мы видим все принтеры (сайт по продаже принтеров), значит запрос и правда идет напрямую в базу данных.

Таким образом мы можем извлечь из нее любую информацию. Наибольшую ценность представляют пароли от учетных записей пользователей.

 

 

Находим таблицу «Logins»

Администратор хранит «хэши» по виду md5.

 

Используем сервис passcracking.com

 

 

Расшифровываем пароль и входим на сайт уже через учетную запись Администратора.

 

Теперь мы можем «администрировать» чужой сайт.

 

Таким образом, используя несложный алгоритм действий мы получили полный доступ к учетным записям пользователей сайта, которые в свою очередь могут содержать данные о физических адресах людей и прочей информации, которая может представлять ценность для злоумышленников.

 

 

Выводы

 

В данной работе было приведено определение уязвимости типа SQL-инъекция, проведена классификация уязвимостей данного вида, а также классификация данной уязвимости в соответствии с ГОСТ, был представлен паспорт уязвимости. Так же данная уязвимость была реализована, посредством взлома базы данных сайта в сети Интернет.

Был произведен обзор средств и методов защиты критически важных информационных сегментов от уязвимости типа SQL-инъекция. Таким образом, в конечном итоге, все эти методы сводятся к одному — внимательности разработчика.

 

 

Содержание

 

Введение.......................................................................................................... 3

Постановка задачи........................................................................................ 3

 

1. Определение уязвимости типа SQL-инъекция............................. 4

1.1 История появления уязвимости................................................ 4

2. Классификация уязвимостей.......................................................... 5

2.1 Основные классы SQL-инъекций.............................................. 5

2.1.1 UNION query SQL injection............................................ 5

2.1.2 Error-based SQL injection................................................ 5

2.1.3 Stacked queries SQL injection.......................................... 6

2.1.4 Boolean-based blind SQL injection................................... 6

2.1.5 Time-based blind SQL injection........................................ 7

2.2.1 Классификация уязвимости в соответствии с ГОСТ............. 7

2.2.2 Паспорт уязвимости............................................................... 8

3. Реализация уязвимости.................................................................. 9

4. Способы защиты от уязвимости.................................................. 12

4.1 Соблюдение правил безопасности......................................... 12

4.2 Тестирование КВИС на наличие уязвимости........................ 13

4.3 Фильтрация потока данных во время работы системы........ 15

Выводы......................................................................................................... 17

Список использованных источников...................................................... 18

 

Введение

 

В работе рассматриваются виды уязвимостей типа SQL-инъекция, способы её реализации и методы защиты критически важных информационных сегментов от этой уязвимости. В работе представлен паспорт уязвимости, приведена классификация видов данной уязвимости, а также реализован взлом базы данных сайта в сети Интернет, методом SQL-инъекции.

 

Постановка задачи

 

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

 

В процессе исследования будут решены следующие задачи:

Определение уязвимости типа SQL-инъекция

2. Классификация уязвимостей типа SQL-инъекция и представление паспорта уязвимости

3. Реализация уязвимости на примере реального сайта в сети Интернет

4. Представление способов и методов защиты от уязвимости

 

 

Определение уязвимости

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

Внедрение SQL-кода (англ. SQL injection) — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.

Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.

 







Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.