Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

5 семестр / Болтушкин Л.С., группа 712-2, лабораторная 7

.docx
Скачиваний:
5
Добавлен:
04.10.2024
Размер:
747.42 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОННИКИ (ТУСУР)

Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)

ЗАЩИТА ОТ SQL-ИНЪЕНКЦИЙ

Отчет по лабораторной работе №7

по дисциплине «Безопасность систем баз данных»

Вариант №3

Студент гр. 712-2 ___________ Л.С. Болтушкин __________

Руководитель Старший преподаватель кафедры КИБЭВС

_______ _________ Н.А. Новгородова

__________

Томск 2024

Введение

Целью данной лабораторной работы является изучение принципов реализации атак вида «SQL-инъекций» и методов защиты от атак такого вида. Согласно варианту №3 необходимо реализовать с помощью инъекций:

  1. Список персональных компьютеров фирмы В или А;

  2. Список персональных компьютеров и ноутбуков, имеющих объем более 64 ГБ и дороже 700 условных единиц;

  3. Список всех цветных принтеров;

  4. Реализовать защиту типизацией данных и экранированием.

1 ХОД РАБОТЫ

Для выполнения данной лабораторной работы была установлена виртуальная машина Oracle Virtual Box и скачан образ виртуальной машины Microsoft SQL, который был импортирован для выполнения лабораторной работы (рисунок 1.1).

Рисунок 1.1 – Импорт конфигураций Windows SQL

Далее на виртуальной машине в браузере была открыта вкладка localhost и согласно варианту №3 использовался файл computer_injections.php (рисунок 1.2).

Рисунок 1.2 – Открытие вкладки

При открытии файла открывается некое окно (рисунок 1.3).

Рисунок 1.3 – Файл «computer_injections»

Чтобы узнать название и версию базы данных и внедрить инъекции использовалась команда AND db_name()=1 (рисунок 1.4) и команда AND @@vercion=1 (рисунок 1.5) , чтобы узнать версию базы, данные команды прописываются в поисковой строке.

Рисунок 1.4 – Имя базы данных

Рисунок 1.5 – Версия базы данных

Чтобы открыть все названия таблиц использовалась команда UNION ALL SELECT 0, TABLE_NAME, 0, 0, 0, 0, 0 FROM INFORMATION_SCHEMA.TABLES (рисунок 1.6).

Рисунок 1.6 – Вывод названия всех таблиц

Чтобы открыть все атрибуты использовалась команда UNION ALL SELECT 0, COLUMN_NAME, 0, 0, 0, TABLE_NAME, O FROM INFORMATION_SCHEMA.COLUMNS (рисунок 1.7).

Рисунок 1.7 – Множество атрибутов

Первое задание по варианту заключалось в выводе таблицы всех ноутбуков типа В или А была выведена с помощью команды UNION ALL SELECT 0, maker, 0, 0, 0, type, 0 FROM Product WHERE (maker = ‘A’ OR maker = ‘B’) AND type = laptop (рисунок 1.8).

Рисунок 1.8 – Вывод ноутбуков типа В или А

Для второго задания использовалась команда UNION ALL SELECT 0, ram, 0, 0, 0, price FROM PC WHERE ram> ‘64’ AND price> ‘700’ (рисунок 1.9).

Рисунок 1.9 – Список персональных компьютеров и ноутбуков, имеющих объем более 64 ГБ и дороже 700 условных единиц

Для выполнения третьего задания использовалась команда UNION ALL SELECT 0, color, 0, 0, 0, type, 0 FROM Printer WHERE color = ‘y’ (рисунок 1.10).

Рисунок 1.10 – Список всех цветных принтеров

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

Для того, чтобы реализовать защиту от SQL-инъекций в браузере было скачано и открыто приложение Sublime Text, а также файл computer_injections.php (рисунок 1.11).

Рисунок 1.11 – Неудачная попытка добавления данных

Типизация данных и экранирование путем применения оператора «--» представлено на рисунке 1.12.

Рисунок 1.12 – Защита от SQL-инъекций в коде

Чтобы проверить и подтвердить то, что внесенные изменения защищают от инъекций, нужно заново открыть браузер, просмотреть файл и нажать кнопку «получить данные», после данного запроса будет выведено, что записи с таким значением не найдено, а значит внесенные изменения успешно защищают (рисунок 1.13).

Рисунок 1.13 – Подтверждение защиты от инъекций

Заключение

В ходе выполнения данной лабораторной работы были получены навыки реализации SQL-инъекций и защиты от них.

Отчет составлен согласно ОС ТУСУР 01-2021.