Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра ЗІ
ЗВІТ
ДО ЛАБОРАТОРНОЇ РОБОТИ № 2
з курсу: “ Аудит кібербезпеки”
На тему: “ Вставка інструкцій SQL (SQL Injection)”
Львів 2020
Мета роботи:
Ознайомитись із технікою виконання атак SQL Injection та способами захисту веб-додатків від такого роду уразливостей.
Stage 1: String SQL Injection.
/
/
Обхід пароля за допомогою параметричного запису “ x’ or ‘1’ = ‘1 ”.
Stage 2: Parameterized Querty #1.
У зв’язку з відсутністю на просторах інтернету версії для розробників, ми вимушені описувати правки в систему без належної їх перевірки.
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
Приблизно такого вигляду повинен бути системний код, задля закриття даної уразливості.
Stage 3: Numeric SQL Injection.
/
/
Результату ми добились, увійшовши в систему під іменем Larry Stooge, та замінивши свій userid на Neville Bartholomew за допомогою зміни елемента у інструменті для веб розробників.
Stage 4: Parameterized Querty #3.
employeeId=s.getParser().getIntParameter(RoleBacedAccessControl.EMPLOYEE_ID);
userId=Integer.parserInt((String)s.getRequest().getSession().getAttribute(getLessonName() + "." + RoleBasedAccessControl.USER_ID));
if (!action.isAuthorizedForEmployee(s, userId, employeeId))
{ throw new UnauthorizedExeption(); }
Modify Data with SQL Injection.
/
Text of request: jsmith’; update salaries set salary = 99000 where userid=’jsmith’;--
/
Database Backdoors.
/
/
Висновок
У даній лабораторній роботі ми на практиці реалізували атаку SQL Injection за допомогою платформи для навчання WebGoat. Освоєно методи числової та рядкової інєкції, створення бекдорів, об’єднання запитів, їх модифікація. Як було показано усі атаки розраховані на непередбачені розробниками дані, які можуть бути надіслані у систему, і порушувати цілісність, доступність та конфіденційність інформації.