Найти в Дзене
ЗА ИБАС

[PortSwigger, 2/16 SQLi] Уязвимость SQL-инъекции, позволяющая обойти вход в систему

А тем временем на подходе обзор второй лабораторной работы с PortSwigger Academy - SQL injection vulnerability allowing login bypass Постановка задачи Эта лабораторная работа содержит уязвимость SQL-инъекции в функции входа в систему.
Чтобы решить лабораторную задачу, выполните атаку с внедрением SQL, которая входит в приложение как пользователь-администратор
Душная теория, которую ты пропустишь Рассмотрим приложение, которое позволяет пользователям входить в систему с именем пользователя и паролем. Если пользователь отправляет имя пользователя wiener и пароль bluecheese, приложение проверяет учетные данные, выполняя следующий SQL-запрос:
SELECT * FROM users WHERE username = 'wiener' AND password = 'bluecheese'
Если запрос возвращает сведения о пользователе, то вход выполнен успешно. В противном случае оно отклоняется.
Здесь злоумышленник может войти в систему как любой пользователь без пароля, просто используя последовательность комментариев SQL -- чтобы удалить проверку пароля
Оглавление

А тем временем на подходе обзор второй лабораторной работы с PortSwigger Academy - SQL injection vulnerability allowing login bypass

Lab: SQL injection vulnerability allowing login bypass | Web Security Academy

Да, да, да.
Да, да, да.

Постановка задачи

Эта лабораторная работа содержит уязвимость SQL-инъекции в функции входа в систему.

Чтобы решить лабораторную задачу, выполните атаку с внедрением SQL, которая входит в приложение как пользователь-администратор


Душная теория, которую ты пропустишь

Рассмотрим приложение, которое позволяет пользователям входить в систему с именем пользователя и паролем. Если пользователь отправляет имя пользователя wiener и пароль bluecheese, приложение проверяет учетные данные, выполняя следующий SQL-запрос:


SELECT * FROM users WHERE username = 'wiener' AND password = 'bluecheese'


Если запрос возвращает сведения о пользователе, то вход выполнен успешно. В противном случае оно отклоняется.

Здесь злоумышленник может войти в систему как любой пользователь без пароля, просто используя последовательность комментариев SQL
-- чтобы удалить проверку пароля из предложения WHERE запроса. Например, отправка имени пользователя администратора и пустого пароля приводит к следующему запросу:


SELECT * FROM users WHERE username = 'administrator'--' AND password = ''

Этот запрос возвращает пользователя с именем администратора и успешно регистрирует злоумышленника в качестве этого пользователя.


Переходим к практике

Нас с Вами встречает веб-сайт с онлайн магазином, но по заданию нам нужно зарегистрироваться под Administrator

-2

Найдем кнопку My account и перейдем в нее

Нас встречает форма логина, которую мы и будем эксплуатировать

-3

Согласно вышеизложенному материалу, нам необходимо привести форму запроса к БД к формату

SELECT * FROM users WHERE username = 'administrator'--' AND password = ''

Чтобы этого достичь, в поле Username необходимо ввести Administrator'--

А в поле Password необходимо ввести ''

И нажать кнопку Login

-4

Поздравляем с очередной выполненной лабой на PortSwigger!

-5