diff --git a/app.py b/app.py index 237b0a7..139c9c3 100644 --- a/app.py +++ b/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(): - return render_template('path-traversal.html') + 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(): diff --git a/static/imgs/cat.jpg b/static/imgs/cat.jpg new file mode 100644 index 0000000..8216c40 Binary files /dev/null and b/static/imgs/cat.jpg differ diff --git a/static/imgs/flag.txt b/static/imgs/flag.txt new file mode 100644 index 0000000..78159c6 --- /dev/null +++ b/static/imgs/flag.txt @@ -0,0 +1,9 @@ + __ __ + | \/ | + | \ / | ___ _____ ________ _ __ ___ ___ _____ __ _ __ ___ ___ _____ ________ _ __ ___ ___ _____ __ + | |\/| |/ _ \/ _ \ \ /\ / /______| '_ ` _ \ / _ \/ _ \ \ /\ / / | '_ ` _ \ / _ \/ _ \ \ /\ / /______| '_ ` _ \ / _ \/ _ \ \ /\ / / + | | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V / | | | | | | __/ (_) \ V V / + |_| |_|\___|\___/ \_/\_/ |_| |_| |_|\___|\___/ \_/\_( ) |_| |_| |_|\___|\___/ \_/\_/ |_| |_| |_|\___|\___/ \_/\_/ + |/ + + С4Tch_Fl4g{Y0u_Find_4_littl3_kitty} \ No newline at end of file diff --git a/templates/path-traversal.html b/templates/path-traversal.html new file mode 100644 index 0000000..e27541c --- /dev/null +++ b/templates/path-traversal.html @@ -0,0 +1,36 @@ +{% extends 'utils/_task.html' %} + +{% block content %} +{% include 'utils/_forensicsidenav.html' %} + + + +
+
+

Посмотри файл и помоги решить задачку, но будь внимателен, стоит проверять, что происходит при нажатии на подозрительные кнопки. Флаг в соотвествующем .txt файле

+ +
+ +
+

Введите ответ:

+
+ + +
+
+
+ + {% if error %} +

{{ error }}

+ {% elif success_flag %} +
+

Вы прошли задание!

+ + < Вернуться к заданиям > +
+ {% endif %} +{% endblock %} \ No newline at end of file