diff --git a/templates/index.html b/templates/index.html index e5fdda1..4917cec 100644 --- a/templates/index.html +++ b/templates/index.html @@ -39,16 +39,16 @@
Это ресурс для обучения, где можно попробовать свои силы в самых лёгких CTF задачках. Тут предоставлены несколько заданий, при - помощи которых можно понять основы{# (чего основы?) #}. При нажатии - на ! в левом нижнем углу будут появляться посвнения по каждому + поомощи которых можно научиться пользоваться базовыми инструментами и утилитами. При нажатии + на ! в левом нижнем углу будут появляться пояснения по каждому заданию
Для большенства заданий предпочтительно иметь Linux, а большинство используемых утилит базово есть в - Kali. + Kali. Если вы используете Windows, то можно рабоать с - Виртуальной Машины + Виртуальной Машины
Good luck, have fun :)
diff --git a/templates/sql-injection.html b/templates/sql-injection.html index 8ea01bf..fc7cf50 100644 --- a/templates/sql-injection.html +++ b/templates/sql-injection.html @@ -3,7 +3,7 @@ {% block content %}SQL-инъекция - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.
+
SQL-инъекция - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.
Как именно это работает? Все дело в том, что данные, которые ввёл пользователь, вставляются в запрос напрямую (пример кода с сервера ниже)
#Как же это работает на сервере?(не стоит так делать, иначе ваш код будет иметь ту же уязвимость)
login = request.form['login'] # Получаем данные из окна с логином, которые пользователь ввёл в форму
@@ -11,16 +11,16 @@ password = request.form['pass'] # Так же получаем данные и
cursor = get_db().cursor() # Получение доступа к базе данных
cursor.execute(f'SELECT * FROM Users WHERE login == "{login}" AND password == "{password}"') # Вставляем в запрос данные от пользователя
Так в место того, чтобы вводить свои данные, можно ввести определённые команды (как правило - вредоносные) - Вводим в соответствующее поле предполагаемый логин админа - admin, а часть кода с проверкой пароля, которая идёт после проверки логина, просто закомментируем знаками ";--. + Вводим в соответствующее поле предполагаемый логин админа - admin, а часть кода с проверкой пароля, которая идёт после проверки логина, просто закомментируем знаками ";-- или "#. Если мы введём admin";-- в поле логин, то наш запрос на сервер отправится вот так:
cursor.execute(f'SELECT * FROM Users WHERE login == "admin";--" AND password == "{password}"')
- Вы успешно вошли под логином admin.
+Соответственно вся часть после знака комментария просто не учитывается. Вы успешно вошли под логином admin.
скрыть