fix(forensic): metadata task flag accept

This commit is contained in:
cheeest 2025-04-08 20:22:57 +03:00
parent 4c349249eb
commit 1ce1b57b4b
4 changed files with 75 additions and 8 deletions

12
app.py
View File

@ -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:
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)
abort(404)
return render_template('task1-metadata.html')
@app.route("/forensic/getimg")
def forensic_task1():

View File

@ -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")

33
templates/binwalk.html Normal file
View File

@ -0,0 +1,33 @@
{% extends 'utils/_task.html' %}
{% include 'utils/_forensicsidenav.html' %}
{% block content %}
<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">
<p class="simpletext">Блин, мой очень-очень важный доклад <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">(Доклад.docx)</abbr> повредился или что-то типо того... Поможешь мне найти флаг в том, что осталось от моей работы?</p>
<h3 href="{{ url_for('static', filename='Доклад.docx') }}" class="header">Доклад.docx</h3>
</div>
<div class="flag-input">
<h3 class="header" style="text-align:left">Введите ответ:</h3>
<form action="/forensic/.docx_files" 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('forensic') }}" class="usable-context" style="text-align: canter; margin: 1rem; padding: 1rem;"> < Вернуться к заданиям > </a>
</div>
{% endif %}
{% endblock %}

33
templates/hex.html Normal file
View File

@ -0,0 +1,33 @@
{% extends 'utils/_task.html' %}
{% include 'utils/_forensicsidenav.html' %}
{% block content %}
<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">
<p class="simpletext">Друг скинул мне картинку и ведёт себя как-то странно.. Постоянно говорит какими-то загадками( Помоги мне посмотреть, что не так с изображением. Может что-то есть <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">внутри</abbr>?</p>
<h3 href="{{ url_for('static', filename='Доклад.docx') }}" class="header">Вставь сюда ссылку на генерируемое изображение, да</h3>
</div>
<div class="flag-input">
<h3 class="header" style="text-align:left">Введите ответ:</h3>
<form action="/forensic/.docx_files" 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('forensic') }}" class="usable-context" style="text-align: canter; margin: 1rem; padding: 1rem;"> < Вернуться к заданиям > </a>
</div>
{% endif %}
{% endblock %}