{% include 'utils/_head.html' %}
{% include 'utils/_header.html' %}Разделы заданий:
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.
скрытьЭто ресурс для обучения, где можно попробовать свои силы в самых лёгких CTF задачках. Тут предоставлены несколько заданий, при поомощи которых можно научиться пользоваться базовыми инструментами и утилитами. При нажатии на ! в левом нижнем углу будут появляться пояснения по каждому заданию
Для большинства заданий предпочтительно иметь Linux, а большинство используемых утилит базово есть в Kali. Если вы используете Windows, то можно работать с Виртуальной Машины
Good luck, have fun =)