chore: sql-task
This commit is contained in:
parent
06100270a1
commit
eddc897ab4
@ -61,6 +61,19 @@
|
|||||||
color: rgba(225, 225, 225, 0.6);
|
color: rgba(225, 225, 225, 0.6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.usable-context {
|
||||||
|
font-family: Monocraft;
|
||||||
|
text-align: center;
|
||||||
|
color: rgba(225, 225, 225, 0.6);
|
||||||
|
text-align: right;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.usable-context:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
.translate-header {
|
.translate-header {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -112,6 +125,7 @@
|
|||||||
.sql-guide {
|
.sql-guide {
|
||||||
width: 65%;
|
width: 65%;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
max-height: 37rem;
|
||||||
background-color: rgb(0 0 0/ 90%);
|
background-color: rgb(0 0 0/ 90%);
|
||||||
padding: 0.4rem 1rem;
|
padding: 0.4rem 1rem;
|
||||||
margin-left: 3.5rem;
|
margin-left: 3.5rem;
|
||||||
@ -120,8 +134,19 @@
|
|||||||
transform: translateX(-165%);
|
transform: translateX(-165%);
|
||||||
transition: 0.5s;
|
transition: 0.5s;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*.scroll {
|
||||||
|
|
||||||
|
max-height: 34rem;
|
||||||
|
width: 100%;
|
||||||
|
overflow-y: scroll;
|
||||||
|
scrollbar-color: green;
|
||||||
|
scrollbar-gutter: stable both-edges;
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
.sql-guide:hover {
|
.sql-guide:hover {
|
||||||
box-shadow: 1.2em 1.2em 0em 0px rgba(186, 65, 166, 0.9);
|
box-shadow: 1.2em 1.2em 0em 0px rgba(186, 65, 166, 0.9);
|
||||||
}
|
}
|
||||||
|
@ -3,20 +3,21 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div id="popup" class="sql-guide divv">
|
<div id="popup" class="sql-guide divv">
|
||||||
<p class="simpletext"style="text-align: left"><span class="hltext">SQL-инъекция</span> - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.<br />
|
<div class="scroll">
|
||||||
<p class="simpletext" style="text-align: left">Как именно это работает? Все дело в том, что данные, которые ввёл пользователь, вставляются в запрос напрямую <span class="context" style="font-size: 0.9rem">(пример кода с сервера ниже)</span></p>
|
<p class="simpletext"style="text-align: left"><span class="hltext">SQL-инъекция</span> - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.<br />
|
||||||
<pre><code class="codefont python">#Как же это работает на сервере?(не стоит так делать, иначе ваш код будет иметь ту же уязвимость)
|
<p class="simpletext" style="text-align: left">Как именно это работает? Все дело в том, что данные, которые ввёл пользователь, вставляются в запрос напрямую <span class="context" style="font-size: 0.9rem">(пример кода с сервера ниже)</span></p>
|
||||||
|
<pre><code class="codefont python">#Как же это работает на сервере?(не стоит так делать, иначе ваш код будет иметь ту же уязвимость)
|
||||||
login = request.form['login'] # Получаем данные из окна с логином, которые пользователь ввёл в форму
|
login = request.form['login'] # Получаем данные из окна с логином, которые пользователь ввёл в форму
|
||||||
password = request.form['pass'] # Так же получаем данные из окна с паролем
|
password = request.form['pass'] # Так же получаем данные из окна с паролем
|
||||||
cursor = get_db().cursor() # Получение доступа к базе данных
|
cursor = get_db().cursor() # Получение доступа к базе данных
|
||||||
cursor.execute(f'SELECT * FROM Users WHERE login == "{login}" AND password == "{password}"') # Вставляем в запрос данные от пользователя</code></pre>
|
cursor.execute(f'SELECT * FROM Users WHERE login == "{login}" AND password == "{password}"') # Вставляем в запрос данные от пользователя</code></pre>
|
||||||
<p class="simpletext" style="text-align: left">Так в место того, чтобы вводить свои данные, можно ввести определённые команды <span class="context" style="font-size: 0.9rem">(как правило - вредоносные)</span>
|
<p class="simpletext" style="text-align: left">Так в место того, чтобы вводить свои данные, можно ввести определённые команды <span class="context" style="font-size: 0.9rem">(как правило - вредоносные)</span>
|
||||||
Вводим в соответствующее поле предполагаемый логин админа - <span class="mono">admin</span>, а часть кода с проверкой пароля, которая идёт после проверки логина, просто закомментируем знаками <span class="mono">";--</span>.
|
Вводим в соответствующее поле предполагаемый логин админа - <span class="mono">admin</span>, а часть кода с проверкой пароля, которая идёт после проверки логина, просто закомментируем знаками <span class="mono">";--</span>.
|
||||||
Если мы введём <span class="mono">admin";--</span> в поле логин, то наш запрос на сервер отправится вот так:</p>
|
Если мы введём <span class="mono">admin";--</span> в поле логин, то наш запрос на сервер отправится вот так:</p>
|
||||||
<pre><code class="codefont python">cursor.execute(f'SELECT * FROM Users WHERE login == "admin";--" AND password == "{password}"')</code></pre>
|
<pre><code class="codefont python">cursor.execute(f'SELECT * FROM Users WHERE login == "admin";--" AND password == "{password}"')</code></pre>
|
||||||
<p class="simpletext">Вы успешно вошли под логином <span class="mono">admin</span>. <span class="context" style="text-align: right; cursor: pointer" onclick="hidePopup()">скрыть</span></p>
|
<p class="simpletext">Вы успешно вошли под логином <span class="mono">admin</span>. <span class="usable-context" onclick="hidePopup()">скрыть</span></p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="divv" id="sqlInpt">
|
<div class="divv" id="sqlInpt">
|
||||||
<form action="sql-injection" method="post" class="simpletext">
|
<form action="sql-injection" method="post" class="simpletext">
|
||||||
<p class="simpletext">Попробуй войти от имени админа,<br />
|
<p class="simpletext">Попробуй войти от имени админа,<br />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user