feat(web): path-traversal task and flag accept
This commit is contained in:
parent
a22bc44764
commit
34182b9929
17
app.py
17
app.py
@ -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
BIN
static/imgs/cat.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
9
static/imgs/flag.txt
Normal file
9
static/imgs/flag.txt
Normal file
@ -0,0 +1,9 @@
|
||||
__ __
|
||||
| \/ |
|
||||
| \ / | ___ _____ ________ _ __ ___ ___ _____ __ _ __ ___ ___ _____ ________ _ __ ___ ___ _____ __
|
||||
| |\/| |/ _ \/ _ \ \ /\ / /______| '_ ` _ \ / _ \/ _ \ \ /\ / / | '_ ` _ \ / _ \/ _ \ \ /\ / /______| '_ ` _ \ / _ \/ _ \ \ /\ / /
|
||||
| | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V /
|
||||
|_| |_|\___|\___/ \_/\_/ |_| |_| |_|\___|\___/ \_/\_( ) |_| |_| |_|\___|\___/ \_/\_/ |_| |_| |_|\___|\___/ \_/\_/
|
||||
|/
|
||||
|
||||
С4Tch_Fl4g{Y0u_Find_4_littl3_kitty}
|
36
templates/path-traversal.html
Normal file
36
templates/path-traversal.html
Normal 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 %}
|
Loading…
x
Reference in New Issue
Block a user