Skip to content

Базовая авторизация

🔹 Базовая авторизация

Разбор всех комнат codeby я решил начать именно с этой - будем идти по возрастающей. Задание не сильно сложное - для новичков самое то.

Итак, перед нами простая форма авторизации - и нам дали тестовые креды для входа в систему.

После входа нас встречает почти пустая страничка с номером id нашего пользователя.

Теперь будем думать, как нам выбраться в учетку админа. При взгляде на форму авторизации лично у меня возникает мысль - было бы классно потестить ее на SQL-инъекции. Что это такое! Давай разберемся.

🔹 SQL-Инъекции

SQL-инъекция — это уязвимость в веб-приложениях, которая позволяет злоумышленнику вмешиваться в запросы, которые приложение отправляет в базу данных.

Представь, что у тебя есть сайт с формой логина (прямо как в нашем случае). Ты вводишь логин и пароль, а сайт на сервере проверяет их в базе данных с помощью такого SQL-запроса:

SELECT * FROM users WHERE username = 'введенный_логин' AND password = 'введенный_пароль';

Если в базе есть такой пользователь с таким паролем — он входит в систему. А теперь представь, что вместо логина злоумышленник вводит вот такую строку:

admin' --

Тогда запрос на сервере превратится в это:

SELECT * FROM users WHERE username = 'admin' -- ' AND password = 'любой_пароль';

Что здесь произошло?

  • Символ ' закрыл кавычки от логина.
  • -- в SQL — это комментарий. Всё, что идет после него, игнорируется.
  • В результате запрос проверяет только логин admin и полностью игнорирует проверку пароля.

Система найдет пользователя admin и пропустит его внутрь, без знания пароля.

Попробуем провернуть это и для нашего задания. Введем в поле логин admin, а в поле пароля " OR 1=1--. И у нас получается войти в систему!