feat(forensic): base task and flag accept
This commit is contained in:
parent
de78c5f8a0
commit
16adc1d99e
16
app.py
16
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():
|
||||
|
33
templates/base.html
Normal file
33
templates/base.html
Normal 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">На просторах небезызвестной ветки /b форума Двач я нашёл это.. Оно определённо точно напоминает мне <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">какую-то кодировку</abbr>.. или их там сразу две? Поможешь разгадать эту загадку?</p>
|
||||
<pre><code style="width: 35rem" class="codefont bash">{{ base_task }}</code></pre>
|
||||
</div>
|
||||
<div class="flag-input">
|
||||
<h3 class="header" style="text-align:left">Введите ответ:</h3>
|
||||
<form action="/forensic/base-guide" 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 %}
|
@ -12,15 +12,13 @@
|
||||
</div>
|
||||
<div class="flag-input">
|
||||
<h3 class="header" style="text-align:left">Введите ответ:</h3>
|
||||
<form action="/forensic/.docx_files" method="post" class="simpletext">
|
||||
<form action="/forensic/hex" 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 %}
|
||||
|
Loading…
x
Reference in New Issue
Block a user