CTF-site-project/templates/sql-injection.html
2025-02-01 16:47:14 +03:00

31 lines
1.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends '_task.html' %}
{% block content%}
<div class="container">
<div id="popup" onclick="hidePopup()" class="sql-guide divv">
<p class="simpletext">Это так называемая SQL-инъекция - уязвимость в системах, где отправляются SQL запросы, например регистрационные формы. <br />
<p class="simpletext">Как именно это работает? Все дело в том, что запрос отправляется без проверки на то, что пользователь туда ввёл. С использованием синтаксиса запроса можно указать себе логин 'admin', а часть с проверкой пароля просто-напросто закомментировать.</p>
<pre><code class="python">login = request.form['login']
password = request.form['pass']
cursor = get_db().cursor()
cursor.execute(f'SELECT * FROM Users WHERE login == "{login}" AND password == "{password}"')</code></pre>
<p class="simpletext">Примерно так выглядит сообтвествующий код, который позволяет использовать уязвимость</p>
</div>
<div class="divv" id="sqlInpt">
<form action="sql-injection" method="post" class="simpletext">
<div class="small-container" ><p>Login: <p class="hidden">...</p> </p> <input type="text" name="login" class="inpt" /></div>
<div class="small-container"><p>Password:</p> <input type="password" name="pass" class="inpt"/></div>
<input type="submit" value="Submit" class="btn1" />
</form>
</div>
</div>
{% if error %}
<div id="error"> <p>{{ error }}</p> </div>
{% elif success %}
<div id="success"> <p>{{ success }}</p> </div>
{% endif %}
{% endblock %}