From 05cd1cbd72b9bdb08bbc75b853d7fcc74a190474 Mon Sep 17 00:00:00 2001
From: cheeest
SQL-инъекция - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.
-
Как именно это работает? Все дело в том, что данные, которые ввёл пользователь, вставляются в запрос напрямую (пример кода с сервера ниже)
-#Как же это работает на сервере?(не стоит так делать, иначе ваш код будет иметь ту же уязвимость)
-login = request.form['login'] # Получаем данные из окна с логином, которые пользователь ввёл в форму
-password = request.form['pass'] # Так же получаем данные из окна с паролем
-cursor = get_db().cursor() # Получение доступа к базе данных
-cursor.execute(f'SELECT * FROM Users WHERE login == "{login}" AND password == "{password}"') # Вставляем в запрос данные от пользователя
- Так в место того, чтобы вводить свои данные, можно ввести определённые команды (как правило - вредоносные) - Вводим в соответствующее поле предполагаемый логин админа - admin, а часть кода с проверкой пароля, которая идёт после проверки логина, просто закомментируем знаками ";-- или "#. - Если мы введём admin";-- в поле логин, то наш запрос на сервер отправится вот так:
-cursor.execute(f'SELECT * FROM Users WHERE login == "admin";--" AND password == "{password}"')
- Соответственно вся часть после знака комментария просто не учитывается. Вы успешно вошли под логином admin.
- скрыть -Это ресурс для обучения, где можно попробовать свои силы в самых @@ -69,7 +55,10 @@ cursor.execute(f'SELECT * FROM Users WHERE login == "{login}" AND password == "{
Good luck, have fun =)
Ха! Самое начало, а уже подсказки ищешь?) Глупыха!!!!
+ скрыть +