From 1ce1b57b4be1384316638e1616ec33421f86ba7e Mon Sep 17 00:00:00 2001 From: cheeest Date: Tue, 8 Apr 2025 20:22:57 +0300 Subject: [PATCH] fix(forensic): metadata task flag accept --- app.py | 14 +++++++------- func.py | 3 ++- templates/binwalk.html | 33 +++++++++++++++++++++++++++++++++ templates/hex.html | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 templates/binwalk.html create mode 100644 templates/hex.html diff --git a/app.py b/app.py index 16eaa4a..7711309 100644 --- a/app.py +++ b/app.py @@ -82,18 +82,18 @@ def webpsguide(): @app.route("/forensic/metadata", methods=('GET', 'POST')) def fmetadata(): - session['task1_id'] = id = hex(getrandbits(45))[2:] - session['flag_task1'] = flag_task1 = f'C4TchFl4g{{{hex(getrandbits(45))[2:]}}}' - task1_flag(flag_task1, id) + flag_task1 = session['flag_task1'] if request.method == 'POST': user_flag = request.form['user_flag'] if user_flag == flag_task1: return render_template('task1-metadata.html', flag=flag_task1, success_flag='.') return render_template('task1-metadata.html', flag=flag_task1, error='Ошибка: неверный флаг!') - if flag_task1: - return render_template('task1-metadata.html', flag=flag_task1) - abort(404) - return render_template('task1-metadata.html') + + if not flag_task1: + session['task1_id'] = id = hex(getrandbits(45))[2:] + session['flag_task1'] = flag_task1 = f'C4TchFl4g{{{hex(getrandbits(45))[2:]}}}' + task1_flag(flag_task1, id) + return render_template('task1-metadata.html', flag=flag_task1) @app.route("/forensic/getimg") def forensic_task1(): diff --git a/func.py b/func.py index d91c5ab..d5c51a0 100644 --- a/func.py +++ b/func.py @@ -2,6 +2,7 @@ import os def task1_flag(flag_task1, id): os.system('exiftool -all= static/imgs/task1.jpg') - os.system('mkdir /tmp/task1') + if not os.path.exists('/tmp/task1'): + os.mkdir('/tmp/task1') os.system(f'cp static/imgs/task1.jpg /tmp/task1/{id}.jpg') os.system(f"exiftool -Comment='{flag_task1}' /tmp/task1/{id}.jpg") \ No newline at end of file diff --git a/templates/binwalk.html b/templates/binwalk.html new file mode 100644 index 0000000..535acbf --- /dev/null +++ b/templates/binwalk.html @@ -0,0 +1,33 @@ +{% extends 'utils/_task.html' %} +{% include 'utils/_forensicsidenav.html' %} +{% block content %} + + +
+
+

Блин, мой очень-очень важный доклад (Доклад.docx) повредился или что-то типо того... Поможешь мне найти флаг в том, что осталось от моей работы?

+

Доклад.docx

+
+
+

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

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

{{ error }}

+ {% elif success_flag %} +
+

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

+ + < Вернуться к заданиям > +
+ {% endif %} +{% endblock %} \ No newline at end of file diff --git a/templates/hex.html b/templates/hex.html new file mode 100644 index 0000000..e767f0e --- /dev/null +++ b/templates/hex.html @@ -0,0 +1,33 @@ +{% extends 'utils/_task.html' %} +{% include 'utils/_forensicsidenav.html' %} +{% block content %} + + +
+
+

Друг скинул мне картинку и ведёт себя как-то странно.. Постоянно говорит какими-то загадками( Помоги мне посмотреть, что не так с изображением. Может что-то есть внутри?

+

Вставь сюда ссылку на генерируемое изображение, да

+
+
+

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

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

{{ error }}

+ {% elif success_flag %} +
+

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

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