 
        
        МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»
Кафедра «Информационной безопасности»
Практическая работа
По дисциплине «Защита информации в глобальных сетях»
По теме «Защита информационной системы от атаки 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
