From 0302e4b964a52f6b4aff727f1e05967aa68446fa Mon Sep 17 00:00:00 2001 From: cheeest Date: Wed, 9 Apr 2025 16:16:22 +0300 Subject: [PATCH] feat(forensic): hash task and flag accept --- app.py | 17 ++++++++++++----- func.py | 1 + static/shadow | 10 ++++++++++ templates/base.html | 2 +- templates/binwalk.html | 4 ++-- templates/hash.html | 31 +++++++++++++++++++++++++++++++ templates/hex.html | 2 +- templates/task1-metadata.html | 2 +- 8 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 static/shadow create mode 100644 templates/hash.html diff --git a/app.py b/app.py index 226c274..48459c9 100644 --- a/app.py +++ b/app.py @@ -83,7 +83,7 @@ def webpsguide(): @app.route("/forensic/metadata", methods=('GET', 'POST')) def fmetadata(): - flag_task1 = session['flag_task1'] + flag_task1 = session.get('flag_task1') if request.method == 'POST': user_flag = request.form['user_flag'] if user_flag == flag_task1: @@ -98,18 +98,20 @@ def fmetadata(): @app.route("/forensic/getimg") def forensic_task1(): + if 'task1_id' not in session.keys(): + abort(404) return send_file(f'/tmp/task1/{session['task1_id']}.jpg') @app.route("/forensic/base-guide", methods=('GET', 'POST')) def fbase(): - flag_task4 = session['flag_task4'] + flag_task4 = session.get('flag_task4') if request.method == 'POST': user_flag = request.form['user_flag'] if user_flag == flag_task4: return render_template('base.html', flag=flag_task4, success_flag='.') return render_template('base.html', flag=flag_task4, error='Ошибка: неверный флаг!') if not flag_task4: - session['flag_task2'] = flag_task4 = f'C4TchFl4g{{{hex(getrandbits(45))[2:]}}}' + session['flag_task4'] = flag_task4 = f'C4TchFl4g{{{hex(getrandbits(45))[2:]}}}' base32str = str(base64.b32encode(flag_task4.encode()))[2:-1] base64str = str(base64.b64encode(f"Ой-ой, похоже, что самое главное всё ещё зашифровано( {base32str}".encode()))[2:-1] return render_template('base.html', base_task=base64str) @@ -134,10 +136,15 @@ def fhex(): return render_template('hex.html', flag=flag_task2, success_flag='.') return render_template('hex.html', flag=flag_task2, error='Ошибка: неверный флаг!') return render_template('hex.html') - return render_template('hex.html') -@app.route("/forensic/hash") +@app.route("/forensic/hash", methods=('GET', 'POST')) def fhash(): + flag_task5 = "C4TchFl4g{superadmin}" + if request.method == 'POST': + user_flag = request.form['user_flag'] + if user_flag == flag_task5: + return render_template('hash.html', flag=flag_task5, success_flag='.') + return render_template('hash.html', flag=flag_task5, error='Ошибка: неверный флаг!') return render_template('hash.html') @app.route("/osint/questions") diff --git a/func.py b/func.py index 979c086..3a9b536 100644 --- a/func.py +++ b/func.py @@ -6,3 +6,4 @@ def task1_flag(flag_task1, id): 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") + diff --git a/static/shadow b/static/shadow new file mode 100644 index 0000000..7cd1a17 --- /dev/null +++ b/static/shadow @@ -0,0 +1,10 @@ +user1:$5$$a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3:19429:0::::: +user2:$5$$b3a8e0e1f9ab1bfe3a36f231f676f78bb30a519d2b21e6c530c0eee8ebb4a5d0:19469:0::::: +herobrine:$5$$35a9e381b1a27567549b5f8a6f783c167ebf809f1c4d6a9e367240484d8ce281:19523:0::::: +nobody:*:19429:0::::: +root:$5$$186cf774c97b60a1c106ef718d10970a6a06e06bef89553d9ae65d938a886eae:19111:0::::: +superman:$5$$73cd1b16c4fb83061ad18a0b29b9643a68d4640075a466dc9e51682f84a847f5:19999:0::::: +cat:$5$$77af778b51abd4a3c51c5ddd97204a9c3ae614ebccb75a606c3b6865aed6744e:19765:0::::: +bin:*:19111:0:9999:7::: +sys:*:19111:0:99999:7::: +_kali:$5$$fc5669b52ce4e283ad1d5d182de88ff9faec6672bace84ac2ce4c083f54fe2bc:19111:0::::: \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index 3517004..5a67062 100644 --- a/templates/base.html +++ b/templates/base.html @@ -6,7 +6,7 @@ скрыть
-
+

На просторах небезызвестной ветки /b форума Двач я нашёл это.. Оно определённо точно напоминает мне какую-то кодировку.. или их там сразу две? Поможешь разгадать эту загадку?

{{ base_task }}
diff --git a/templates/binwalk.html b/templates/binwalk.html index d628057..658a6d1 100644 --- a/templates/binwalk.html +++ b/templates/binwalk.html @@ -13,9 +13,9 @@ скрыть
-
+

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

- Доклад.docx + Доклад.docx

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

diff --git a/templates/hash.html b/templates/hash.html new file mode 100644 index 0000000..052dc15 --- /dev/null +++ b/templates/hash.html @@ -0,0 +1,31 @@ +{% extends 'utils/_task.html' %} +{% include 'utils/_forensicsidenav.html' %} +{% block content %} + + +
+
+

На своей рабочей машине я смог достать этот файл.. Я где-то слышал, что в нём есть то, что поможет мне стать админом - пароль или что-то вроде.. но Вместо пароля там написан какой-то бред!

+ Shadow +
+
+

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

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

{{ error }}

+ {% elif success_flag %} +
+

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

+ + < Вернуться к заданиям > +
+ {% endif %} +{% endblock %} \ No newline at end of file diff --git a/templates/hex.html b/templates/hex.html index 3bdbaf7..2e1d4fd 100644 --- a/templates/hex.html +++ b/templates/hex.html @@ -6,7 +6,7 @@ скрыть
-
+

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

diff --git a/templates/task1-metadata.html b/templates/task1-metadata.html index 941427d..e33bb1a 100644 --- a/templates/task1-metadata.html +++ b/templates/task1-metadata.html @@ -16,7 +16,7 @@ скрыть
-
+

Перед тобой очень забавная картинка. Попробуй проверить её метаданные, вдруг там что-то есть