feat(osint): found-me flag

This commit is contained in:
chest 2025-04-12 17:18:03 +03:00
parent 74317aef47
commit ec1b21a418
6 changed files with 50 additions and 13 deletions

15
app.py
View File

@ -4,6 +4,7 @@ import sqlite3
from random import getrandbits
from func import *
import base64
#Вот сюда тебе и надо, начинающий мастер OSINT'а! Только не смотри другие флаги: кто посмотрит, тот ***** :>
connection = sqlite3.connect('database.db')
@ -24,6 +25,16 @@ app = Flask(__name__)
app.config['SECRET_KEY'] = 'ca4ac4ada05f91a5790d2132992bfaed86df15c4d08f2dfe'
DATABASE = 'database.db'
@app.route("/osint/found_me", methods=('GET', 'POST'))
def osintfound():
Y0u_Fin4ly_F0und_7his = 'C4TchFl4g{Pls_supp0rt_my_pr0j3ct}'
if request.method == 'POST':
user_flag = request.form['user_flag']
if user_flag == Y0u_Fin4ly_F0und_7his:
return render_template('found-me.html', flag=Y0u_Fin4ly_F0und_7his, success_flag='.')
return render_template('found-me.html', flag=Y0u_Fin4ly_F0und_7his, error='Ошибка: неверный флаг!')
return render_template('found-me.html')
def get_db():
db = getattr(g, '_database', None)
if db is None:
@ -176,9 +187,7 @@ def fhash():
return render_template('hash.html', flag=flag_task5, error='Ошибка: неверный флаг!')
return render_template('hash.html')
@app.route("/osint/questions")
def osintquestions():
return render_template('osint-questions.html')
@app.route("/osint/geoguessr")
def osintgeoguessr():

35
templates/found-me.html Normal file
View File

@ -0,0 +1,35 @@
{% extends 'utils/_task.html' %} <!--Тебе сюда!!!!-->
{% block content %}
{% include 'utils/_forensicsidenav.html' %}
<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>
</div>
<div class="flag-input">
<h3 class="header" style="text-align:left">Введите ответ:</h3>
<form action="/osint/found_me" 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('osint') }}" class="usable-context" style="text-align: canter; margin: 1rem; padding: 1rem;"> < Вернуться к заданиям > </a>
</div>
{% endif %}
{% endblock %}
<!--Дада, ты почти нашёл флаг.. Раз уж ты тут, может возьмёшь его напрямую из кода его одобрения? Только не смотри на другие флаги там! Так будет нечестно!-->

View File

@ -8,7 +8,7 @@
<p class="simpletext">< Задания категории OSINT ></p>
<nav class="navbtn">
{%- for name, descr in (
('osintquestions', "Чур ответы не гуглить!"),
('osintfound', "Чур ответы не гуглить!"),
('osintgeoguessr', "Профессионал Яндекс-карт"),
('osintrht', "Реально сложный таск"),
) %}

View File

@ -1,7 +0,0 @@
{% extends 'utils/_task.html' %}
{% block content %}
{% include 'utils/_osintsidenav.html' %}
{% endblock %}

View File

@ -63,7 +63,7 @@
<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>
<a href="{{ url_for('web') }}" class="usable-context" style="text-align: canter; margin: 1rem; padding: 1rem;"> < Вернуться к заданиям > </a>
</div>
{% endif %}
{% endblock %}

View File

@ -3,7 +3,7 @@
<nav class="navlink">
<a href="{{ url_for('index') }}" class="link">На главную</a>
{%- for link, text in (
('osintquestions', "Чур ответы не гуглить!"),
('osintfound', "Чур ответы не гуглить!"),
('osintgeoguessr', "Мастер яндекс-карт"),
('osintrht', "Реально сложный таск"),
) %}