feat(web): path-traversal task and flag accept

This commit is contained in:
chest 2025-04-16 19:33:47 +03:00
parent a22bc44764
commit 34182b9929
4 changed files with 62 additions and 2 deletions

17
app.py
View File

@ -83,9 +83,24 @@ def websql():
def webidor():
return render_template('idor.html')
@app.route("/web/path-traversal")
@app.route("/web/path-traversal", methods=('GET', 'POST'))
def webpt():
flag_task3 = 'С4Tch_Fl4g{Y0u_Find_4_littl3_kitty}'
if request.method == 'POST':
user_flag = request.form['user_flag']
if user_flag == flag_task3:
return render_template('path-traversal.html', flag=flag_task3, success_flag='.')
return render_template('path-traversal.html', flag=flag_task3, error='Ошибка: неверный флаг!')
filename = request.args.get("file")
if not filename:
return render_template('path-traversal.html')
try:
return send_file(filename)
except FileNotFoundError:
abort(404)
@app.route("/web/ssti", methods=('GET', 'POST'))
def webssti():

BIN
static/imgs/cat.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

9
static/imgs/flag.txt Normal file
View File

@ -0,0 +1,9 @@
__ __
| \/ |
| \ / | ___ _____ ________ _ __ ___ ___ _____ __ _ __ ___ ___ _____ ________ _ __ ___ ___ _____ __
| |\/| |/ _ \/ _ \ \ /\ / /______| '_ ` _ \ / _ \/ _ \ \ /\ / / | '_ ` _ \ / _ \/ _ \ \ /\ / /______| '_ ` _ \ / _ \/ _ \ \ /\ / /
| | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V /
|_| |_|\___|\___/ \_/\_/ |_| |_| |_|\___|\___/ \_/\_( ) |_| |_| |_|\___|\___/ \_/\_/ |_| |_| |_|\___|\___/ \_/\_/
|/
С4Tch_Fl4g{Y0u_Find_4_littl3_kitty}

View File

@ -0,0 +1,36 @@
{% extends 'utils/_task.html' %}
{% block content %}
{% include 'utils/_forensicsidenav.html' %}
<div id="popup" class="sql-guide capsule-window">
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
</div>
<div class="container">
<div class="small capsule-window info1" style="height: auto;">
<p class="simpletext"><abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">Посмотри</abbr> файл и помоги решить задачку, но будь внимателен, стоит проверять, что происходит при нажатии на подозрительные кнопки. Флаг в соотвествующем .txt файле</p>
<button class="btn1" onclick="location.href='/web/path-traversal?file=static/imgs/cat.jpg'">
К изображению
</button>
</div>
<div class="flag-input">
<h3 class="header" style="text-align:left">Введите ответ:</h3>
<form action="/web/path-traversal" method="post" class="simpletext">
<input class="inpt" type="text" name="user_flag" style="width: 100%; height: 1.25rem; margin: 0">
<input type="submit" value="Submit" class="btn1" style="margin-top: 1.25rem">
</form>
</div>
</div>
{% if error %}
<div id="error"> <p>{{ error }}</p> </div>
{% elif success_flag %}
<div class="task-done">
<h1 class="header">Вы прошли задание!</h1>
<img class="done" src="{{ url_for('static', filename='imgs/done_icon.png') }}">
<a href="{{ url_for('web') }}" class="usable-context" style="text-align: canter; margin: 1rem; padding: 1rem;"> < Вернуться к заданиям > </a>
</div>
{% endif %}
{% endblock %}