feat(forensic): hash task and flag accept
This commit is contained in:
parent
649c621345
commit
0302e4b964
17
app.py
17
app.py
@ -83,7 +83,7 @@ def webpsguide():
|
|||||||
|
|
||||||
@app.route("/forensic/metadata", methods=('GET', 'POST'))
|
@app.route("/forensic/metadata", methods=('GET', 'POST'))
|
||||||
def fmetadata():
|
def fmetadata():
|
||||||
flag_task1 = session['flag_task1']
|
flag_task1 = session.get('flag_task1')
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
user_flag = request.form['user_flag']
|
user_flag = request.form['user_flag']
|
||||||
if user_flag == flag_task1:
|
if user_flag == flag_task1:
|
||||||
@ -98,18 +98,20 @@ def fmetadata():
|
|||||||
|
|
||||||
@app.route("/forensic/getimg")
|
@app.route("/forensic/getimg")
|
||||||
def forensic_task1():
|
def forensic_task1():
|
||||||
|
if 'task1_id' not in session.keys():
|
||||||
|
abort(404)
|
||||||
return send_file(f'/tmp/task1/{session['task1_id']}.jpg')
|
return send_file(f'/tmp/task1/{session['task1_id']}.jpg')
|
||||||
|
|
||||||
@app.route("/forensic/base-guide", methods=('GET', 'POST'))
|
@app.route("/forensic/base-guide", methods=('GET', 'POST'))
|
||||||
def fbase():
|
def fbase():
|
||||||
flag_task4 = session['flag_task4']
|
flag_task4 = session.get('flag_task4')
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
user_flag = request.form['user_flag']
|
user_flag = request.form['user_flag']
|
||||||
if user_flag == flag_task4:
|
if user_flag == flag_task4:
|
||||||
return render_template('base.html', flag=flag_task4, success_flag='.')
|
return render_template('base.html', flag=flag_task4, success_flag='.')
|
||||||
return render_template('base.html', flag=flag_task4, error='Ошибка: неверный флаг!')
|
return render_template('base.html', flag=flag_task4, error='Ошибка: неверный флаг!')
|
||||||
if not flag_task4:
|
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]
|
base32str = str(base64.b32encode(flag_task4.encode()))[2:-1]
|
||||||
base64str = str(base64.b64encode(f"Ой-ой, похоже, что самое главное всё ещё зашифровано( {base32str}".encode()))[2:-1]
|
base64str = str(base64.b64encode(f"Ой-ой, похоже, что самое главное всё ещё зашифровано( {base32str}".encode()))[2:-1]
|
||||||
return render_template('base.html', base_task=base64str)
|
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, success_flag='.')
|
||||||
return render_template('hex.html', flag=flag_task2, error='Ошибка: неверный флаг!')
|
return render_template('hex.html', flag=flag_task2, error='Ошибка: неверный флаг!')
|
||||||
return render_template('hex.html')
|
return render_template('hex.html')
|
||||||
return render_template('hex.html')
|
|
||||||
|
|
||||||
@app.route("/forensic/hash")
|
@app.route("/forensic/hash", methods=('GET', 'POST'))
|
||||||
def fhash():
|
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')
|
return render_template('hash.html')
|
||||||
|
|
||||||
@app.route("/osint/questions")
|
@app.route("/osint/questions")
|
||||||
|
1
func.py
1
func.py
@ -6,3 +6,4 @@ def task1_flag(flag_task1, id):
|
|||||||
os.mkdir('/tmp/task1')
|
os.mkdir('/tmp/task1')
|
||||||
os.system(f'cp static/imgs/task1.jpg /tmp/task1/{id}.jpg')
|
os.system(f'cp static/imgs/task1.jpg /tmp/task1/{id}.jpg')
|
||||||
os.system(f"exiftool -Comment='{flag_task1}' /tmp/task1/{id}.jpg")
|
os.system(f"exiftool -Comment='{flag_task1}' /tmp/task1/{id}.jpg")
|
||||||
|
|
||||||
|
10
static/shadow
Normal file
10
static/shadow
Normal file
@ -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:::::
|
@ -6,7 +6,7 @@
|
|||||||
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
|
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="small capsule-window info1">
|
<div class="small capsule-window info1" style="height: auto">
|
||||||
<p class="simpletext">На просторах небезызвестной ветки /b форума Двач я нашёл это.. Оно определённо точно напоминает мне <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">какую-то кодировку</abbr>.. или их там сразу две? Поможешь разгадать эту загадку?</p>
|
<p class="simpletext">На просторах небезызвестной ветки /b форума Двач я нашёл это.. Оно определённо точно напоминает мне <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">какую-то кодировку</abbr>.. или их там сразу две? Поможешь разгадать эту загадку?</p>
|
||||||
<pre><code style="width: 35rem" class="codefont bash">{{ base_task }}</code></pre>
|
<pre><code style="width: 35rem" class="codefont bash">{{ base_task }}</code></pre>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
|
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="small capsule-window info1">
|
<div class="small capsule-window info1" style="height: auto">
|
||||||
<p class="simpletext">Блин, мой очень-очень важный доклад <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">(Доклад.docx)</abbr> повредился или что-то типо того... Поможешь мне найти флаг в том, что осталось от моей работы?</p>
|
<p class="simpletext">Блин, мой очень-очень важный доклад <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">(Доклад.docx)</abbr> повредился или что-то типо того... Поможешь мне найти флаг в том, что осталось от моей работы?</p>
|
||||||
<a href="{{ url_for('static', filename='Доклад.docx') }}" class="simpletext header">Доклад.docx</a>
|
<a href="{{ url_for('static', filename='Доклад.docx') }}" class="simpletext header" style="font-size: 1.6rem">Доклад.docx</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="flag-input">
|
<div class="flag-input">
|
||||||
<h3 class="header" style="text-align:left">Введите ответ:</h3>
|
<h3 class="header" style="text-align:left">Введите ответ:</h3>
|
||||||
|
31
templates/hash.html
Normal file
31
templates/hash.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{% 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" style="height: auto">
|
||||||
|
<p class="simpletext">На своей рабочей машине я смог достать этот <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">файл</abbr>.. Я где-то слышал, что в нём есть то, что поможет мне стать админом - пароль или что-то вроде.. но Вместо пароля там написан какой-то бред!</p>
|
||||||
|
<a href="{{ url_for('static', filename='shadow') }}" class="simpletext header" style="font-size: 1.6rem">Shadow</a>
|
||||||
|
</div>
|
||||||
|
<div class="flag-input">
|
||||||
|
<h3 class="header" style="text-align:left">Введите ответ:</h3>
|
||||||
|
<form action="/forensic/hash" 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 %}
|
@ -6,7 +6,7 @@
|
|||||||
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
|
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="small capsule-window info1">
|
<div class="small capsule-window info1" style="height: auto">
|
||||||
<p class="simpletext">Друг скинул мне картинку и ведёт себя как-то странно.. Постоянно говорит какими-то загадками( Помоги мне посмотреть, что не так с изображением. Может что-то есть <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">внутри</abbr>?</p>
|
<p class="simpletext">Друг скинул мне картинку и ведёт себя как-то странно.. Постоянно говорит какими-то загадками( Помоги мне посмотреть, что не так с изображением. Может что-то есть <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">внутри</abbr>?</p>
|
||||||
<img style="heigth: auto; width: 23rem" src="{{ url_for('static', filename='imgs/hextask.jpg') }}">
|
<img style="heigth: auto; width: 23rem" src="{{ url_for('static', filename='imgs/hextask.jpg') }}">
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
|
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="small capsule-window info1">
|
<div class="small capsule-window info1" style="height: auto">
|
||||||
<p class="simpletext">Перед тобой очень забавная картинка. Попробуй проверить её <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">метаданные</abbr>, вдруг там что-то есть</p>
|
<p class="simpletext">Перед тобой очень забавная картинка. Попробуй проверить её <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">метаданные</abbr>, вдруг там что-то есть</p>
|
||||||
<img style="heigth: auto; width: 30rem" src="{{ url_for('forensic_task1') }}">
|
<img style="heigth: auto; width: 30rem" src="{{ url_for('forensic_task1') }}">
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user