МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»
Кафедра «Информационной безопасности»
Практическая работа
По дисциплине «Защита информации в глобальных сетях»
По теме «Защита информационной системы от атаки SQL –инъекции»
Студенты: гр. МБСТ0000
Руководитель: Барков Вячеслав Валерьевич
Москва, 2025
Предметная область
Техническое обслуживание
Замена масла, фильтров, тормозных колодок и других расходных материалов.
Диагностика
Проверка состояния автомобиля с использованием специального оборудования.
Замена и ремонт деталей и компонентов
Устранение неполадок в работе двигателя, подвески, тормозных дисков и колодок, исправление проблем с электрикой автомобиля, устранение неисправностей в топливной системе.
Установка дополнительного оборудования
Установка сигнализации, парктроников, аудиосистем и других аксессуаров.
Шиномонтаж
Замена шин, балансировка колес, ремонт проколов и порезов.
2
1
Бизнес 2
Требования 3
4
Регистрация
Для Пользователя
Авторизация
Для Пользователя и Администратора
Просмотр информации
Для Пользователя и Администратора
Выход
Для Пользователя и Администратора
3
SQL – инъекция
Данная уязвимость позволяет атакующему использовать фрагмент вредоносного кода на языке структурированных запросов (SQL) для манипулирования базой данных и получения доступа к потенциально ценной информации.
•Типы
•SQLi
• Инференциаль |
Внеполосная |
• Внутриполосн |
||||
|
ная атака |
атака |
ая атака |
|||
|
(Inferential |
(Out-of-band |
• (In-band SQLi) |
|||
|
|
|
SQLi) |
|||
|
|
|
SQLi) |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
• |
Булевая слепая |
Слепая атака, |
Атака на основе |
Атака на основе |
|
|
атака |
основанная на |
объединения |
ошибок |
|
• |
(Boolean SQLi) |
времени |
(Union-based SQLi) |
(Error-based SQLi) |
|
(Time-based SQLi) |
|||||
|
|
|
4 |
||
|
|
|
|
Моделирование атаки
1Авторизация Администратора системы
# Получение переменных из HTML формы регистрации email = request.form['email']
password = request.form['psw'] print(email)
print(password)
# Подлкючение к БД Mysql
connection = pymysql.connect(**config, cursorclass=pymysql.cursors.DictCursor, charset='utf8', use_unicode=True)
with connection.cursor() as cursor:
select_movies_query = "SELECT * FROM users WHERE email = '" + email + "' AND password = '"+ password +"'"
cursor.execute(select_movies_query) result = cursor.fetchall() print(result)
5
Моделирование атаки
2Просмотр личного кабинета
6
Моделирование атаки
3Выход из системы и ввод данных другого пользователя
7
Методика защиты от угроз
Использование метода escape_string(): Функция
1escape() модуля re выполняет экранирование специальных символов в шаблоне.
2 |
Передача SQL-запроса через аргументы также |
позволяет защитить сайт от угрозы SQL – |
инъекции.
# Получение переменных из HTML формы регистрации
email = escape_string(request.form['email’]) password = escape_string(request.form['psw’]) print(email, password)
# Подлкючение к БД Mysql with connection.cursor() as cursor:
select_movies_query = "SELECT * FROM users WHERE email = '" + email + "' AND password = '"+ password +"'"
cursor.execute(select_movies_query) result = cursor.fetchall() print(result)
# Подлкючение к БД Mysql |
|
with connection.cursor() as cursor: |
|
select_movies_query = "SELECT * FROM |
|
users WHERE email = %s AND password = %s" |
|
val = (email, password) |
|
cursor.execute(select_movies_query, val) |
|
result = cursor.fetchall() |
8 |
|
Моделирование атаки
1Авторизация Администратора системы
9