5 семестр / Л7_
.docxФедеральное государственное бюджетное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОННИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
ЗАЩИТА ОТ SQL-ИНЪЕКЦИЙ
Отчет по лабораторной работе № 7 По дисциплине «Безопасность систем баз данных»
|
|
Студенты гр. 711-2 |
|
____________ |
|
|
|
08.11.2023 |
|
|
Принял |
|
|
Младший преподаватель каф. КИБЭВС |
|
__________ |
________ Р.Д. Сахарбеков |
|
|
08.11.2023 |
|
|
|
Введение
Цель работы: изучение принципов реализации атак вида «SQL-инъекций» и методов защиты от атак такого вида. Согласно варианту №3 реализовать с помощью инъекций:
список персональных компьютеров фирмы А или В;
список персональных компьютеров и ноутбуков, имеющих объем больше 64 ГБ и дороже 700 условных единиц;
список всех цветных принтеров;
реализовать защиту типизацией данных и экранированием.
ХОД РАБОТЫ
На виртуальной машине в браузере была открыта вкладка localhost и, согласно 3 варианту, использовался файл computer_injections.php (рисунок 1.1)
Рисунок 1.1 – Открытая вкладка
Чтобы узнать название базы данных использовалась команда AND db_name()=1 и команда AND @@vercion=1, чтобы узнать версию базы (рисунки 1.2 – 1.3).
Рисунок 1.2 – Имя базы данных
Рисунок 1.3 – Версия базы данных
Чтобы открыть все названия таблиц использовалась команда UNION ALL SELECT 0, TABLE_NAME, 0, 0, 0, 0, 0 FROM INFORMATION_SCHEMA.TABLES (рисунок 1.4).
Рисунок 1.4 – Вывод названия всех таблиц
Чтобы открыть все атрибуты использовалась команда UNION ALL SELECT 0, COLUMN_NAME, 0, 0, 0, TABLE_NAME, O FROM INFORMATION_SCHEMA.COLUMNS (рисунок 1.5).
Рисунок 1.5 – Все атрибуты
Таблица всех ноутбуков типа А или В был выведена с помощью команды UNION ALL SELECT 0, maker, 0, 0, 0, type, 0 FROM Product WHERE (maker = ‘A’ OR maker = ‘B’) AND type = laptop (рисунок 1.6).
Рисунок 1.6 – Первое задание
Для выполнения второго задания использовалась команда UNION ALL SELECT 0, ram, 0, 0, 0, price FROM PC WHERE ram > ‘64’ AND price > ‘700’ (рисунок 1.7).
Для выполнения третьего задания использовалась команда UNION ALL SELECT 0, color, 0, 0, 0, type, 0 FROM Printer WHERE color = ‘y’ (рисунок 1.8).
Рисунок 1.7 – Второе задание
Рисунок 1.8 – Третье задание
Для того, чтобы реализовать защиту от SQL-инъекций, было открыто приложение Sublime Text и файл computer_injections.php (рисунок 1.9)
Рисунок 1.9 – Неудачная попытка добавления данных
Типизация данных и экранирование путём применения оператора «--» предоставлено на рисунке 1.10.
Подтверждение того, что внесенные изменения защищают от инъекций изображено на рисунке 1.11.
Рисунок 1.10 – Защита от инъекций в коде
Рисунок 1.11 – Подтверждение работы защиты от инъекций
Заключение
В данной работе были получены навыки реализации SQL-инъекций и защиты от них.
Отчет был написал согласно ОС ТУСУР 01-2021.
Томск 2023