diff --git a/app.py b/app.py index 06fa8cb..348e9f2 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,7 @@ from flask import Flask, render_template, request, url_for, session, redirect, g import sqlite3 from random import getrandbits from func import * +import base64 connection = sqlite3.connect('database.db') cursor = connection.cursor() @@ -99,9 +100,20 @@ def fmetadata(): def forensic_task1(): return send_file(f'/tmp/task1/{session['task1_id']}.jpg') -@app.route("/forensic/base-guide") +@app.route("/forensic/base-guide", methods=('GET', 'POST')) def fbase(): - return render_template('base.html') + flag_task2 = session['flag_task2'] + if request.method == 'POST': + user_flag = request.form['user_flag'] + if user_flag == flag_task2: + return render_template('base.html', flag=flag_task2, success_flag='.') + return render_template('base.html', flag=flag_task2, error='Ошибка: неверный флаг!') + if not flag_task2: + session['flag_task2'] = flag_task2 = f'C4TchFl4g{{{hex(getrandbits(45))[2:]}}}' + base32str = str(base64.b32encode(flag_task2.encode()))[2:-1] + base64str = str(base64.b64encode(f"Ой-ой, похоже, что самое главное всё ещё зашифровано( {base32str}".encode()))[2:-1] + return render_template('base.html', base_task=base64str) + @app.route("/forensic/.docx_files", methods=('GET', 'POST')) def fbinwalk(): diff --git a/func.py b/func.py index d5c51a0..979c086 100644 --- a/func.py +++ b/func.py @@ -5,4 +5,4 @@ def task1_flag(flag_task1, id): 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 + os.system(f"exiftool -Comment='{flag_task1}' /tmp/task1/{id}.jpg") diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..3517004 --- /dev/null +++ b/templates/base.html @@ -0,0 +1,33 @@ +{% extends 'utils/_task.html' %} +{% include 'utils/_forensicsidenav.html' %} +{% block content %} + +
На просторах небезызвестной ветки /b форума Двач я нашёл это.. Оно определённо точно напоминает мне какую-то кодировку.. или их там сразу две? Поможешь разгадать эту загадку?
+{{ base_task }}
+ {{ error }}
{{ error }}