fix: help window animation

This commit is contained in:
cheeest 2025-04-07 21:56:35 +03:00
parent 5a17934843
commit 734f481715
3 changed files with 18 additions and 23 deletions

View File

@ -184,15 +184,15 @@
padding-top: 2rem; padding-top: 2rem;
} }
#sqlInpt { .sqlInpt {
position: relative;
margin: 3.5rem; margin: 3.5rem;
background-color: rgb(0 0 0 / 85%); background-color: rgb(0 0 0 / 85%);
padding: 0.5rem 1.5rem; padding: 0.5rem 1.5rem;
text-align: left; text-align: left;
width: auto; width: clamp(40rem, 35%, 60rem);
height: 22rem; height: 22rem;
transition: 1s; transition: 1s;
display: flex;
} }
.slideinInpt { .slideinInpt {
transition: 1s; transition: 1s;
@ -317,7 +317,7 @@
} }
.navigation{ .navigation{
width: 18%; width: 19.5rem;
height: clamp(27rem, 65%, 39rem); height: clamp(27rem, 65%, 39rem);
padding: 0; padding: 0;
top: 17.5%; top: 17.5%;

View File

@ -1,9 +1,7 @@
function showPopup() { function showPopup() {
const popup = document.getElementById("popup"); const popup = document.getElementById("popup");
const sqlInpt = document.getElementById("sqlInpt");
popup.classList.remove('slideoutHelp'); popup.classList.remove('slideoutHelp');
sqlInpt.classList.remove('slideoutInpt');
popup.style.display = "block"; popup.style.display = "block";
setTimeout(() => { setTimeout(() => {
@ -14,10 +12,8 @@ function showPopup() {
function hidePopup() { function hidePopup() {
const popup = document.getElementById("popup"); const popup = document.getElementById("popup");
const sqlInpt = document.getElementById("sqlInpt");
sqlInpt.classList.remove('slideinInpt');
sqlInpt.classList.add('slideoutInpt')
popup.classList.remove('slideinHelp'); popup.classList.remove('slideinHelp');
popup.classList.add('slideoutHelp'); popup.classList.add('slideoutHelp');

View File

@ -1,24 +1,23 @@
{% extends 'utils/_task.html' %} {% extends 'utils/_task.html' %}
{% include 'utils/_websidenav.html' %} {% include 'utils/_websidenav.html' %}
{% block content %} {% block content %}
<div class="container"> <div id="popup" class="sql-guide capsule-window">
<div id="popup" class="sql-guide capsule-window"> <p class="simpletext" style="text-align: left"><a class="hltext" href="https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html?highlight=sql%20inje#what-is-sql-injection">SQL-инъекция</a> - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.<br />
<p class="simpletext" style="text-align: left"><a class="hltext" href="https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html?highlight=sql%20inje#what-is-sql-injection">SQL-инъекция</a> - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.<br /> <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="context" style="font-size: 0.9rem">(пример кода с сервера ниже)</span></p> <pre><code class="codefont python">#Как же это работает на сервере?(не стоит так делать, иначе ваш код будет иметь ту же уязвимость)
<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">"#</span>. Вводим в соответствующее поле предполагаемый логин админа - <span class="mono">admin</span>, а часть кода с проверкой пароля, которая идёт после проверки логина, просто закомментируем знаками <span class="mono">";--</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>.</p> <p class="simpletext">Соответственно вся часть после знака комментария просто не учитывается. Вы успешно вошли под логином <span class="mono">admin</span>.</p>
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span> <span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
</div>
</div> </div>
<div class="capsule-window" id="sqlInpt"> <div class="container">
<div class="capsule-window 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 />
используя уязвимость<abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">SQL-инъекции</abbr>. Найдите флаг</p> используя уязвимость<abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">SQL-инъекции</abbr>. Найдите флаг</p>
@ -27,7 +26,7 @@ cursor.execute(f'SELECT * FROM Users WHERE login == "{login}" AND password == "{
<input type="submit" value="Submit" class="btn1" /> <input type="submit" value="Submit" class="btn1" />
</form> </form>
</div> </div>
</div>
{% if error %} {% if error %}
<div id="error"> <p>{{ error }}</p> </div> <div id="error"> <p>{{ error }}</p> </div>
{% elif success %} {% elif success %}