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
cookiemonster — Décode et désigne les cookies de session vulnérables des frameworks Django, Flask, Laravel, Express et JWT. Prend en charge les décodeurs basés sur HMAC, les listes de mots en base64 et les pipelines d'automatisation pour une découverte rapide des vulnérabilités. | Kitploit
Outils/GitHubGitHub/iangcarroll/cookiemonster
Analyse des VulnérabilitésSécurité WebCryptographieTests d'Intrusion
GitHubiangcarroll/cookiemonster

cookiemonster

Décode et désigne les cookies de session vulnérables des frameworks Django, Flask, Laravel, Express et JWT. Prend en charge les décodeurs basés sur HMAC, les listes de mots en base64 et les pipelines d'automatisation pour une découverte rapide des vulnérabilités.

Voir le dépôt
98275il 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

🍪 CookieMonster

CookieMonster est un outil en ligne de commande et une API pour décoder et modifier les cookies de session vulnérables de plusieurs frameworks différents. Il est conçu pour fonctionner dans des pipelines d'automatisation qui doivent être capables de traiter efficacement un grand nombre de ces cookies afin de découvrir rapidement des vulnérabilités. De plus, CookieMonster est extensible et peut facilement prendre en charge de nouveaux formats de cookies.

Il est important de souligner que CookieMonster trouve des vulnérabilités chez les utilisateurs des frameworks, généralement pas dans les frameworks eux-mêmes. Ces utilisateurs peuvent résoudre les vulnérabilités découvertes via CookieMonster en configurant le framework pour utiliser une clé secrète forte.

Fonctionnalités

  • Décode et désigne les cookies de session de Laravel, Django, Flask, Rack et Express, et gère également les JWT bruts.
  • Évalue rapidement les cookies ; ignore les cookies invalides et non pris en charge, et teste rapidement ceux qu'il peut.
  • Tire pleinement parti des implémentations natives rapides de Go pour les fonctions de hachage.
  • Décode intelligemment les cookies encodés en URL et en Base64 (par exemple, le Base64 d'un JWT) lorsque le décodage initial échoue.
  • Prend en charge de nombreux algorithmes pour les décodeurs basés sur HMAC, même si le framework n'en utilise généralement qu'un seul.
  • Le format flexible de liste de mots encodée en base64 permet d'ajouter n'importe quelle séquence d'octets clés en tant qu'entrée ; livré avec une liste par défaut raisonnable.
FrameworkPrise en chargeNotes
Jetons Web JSON✅HS256, HS384, HS512
Django✅Algorithmes courants
Flask✅Algorithmes courants
Rack✅Algorithmes courants
Express (cookie-signer)✅Algorithmes courants
Laravel✅AES-CBC-128/256 (GCM pas encore pris en charge)
itsdangerous✅URLSafeSerializer/URLSafeTimedSerializer (sel par défaut)
Autres❌Pas encore !

Pour commencer

Pour installer CookieMonster, installez Go puis installez le CLI :

root@kitploit:~
go install github.com/iangcarroll/cookiemonster/cmd/cookiemonster@latest

CookieMonster n'a besoin que de deux éléments essentiels : un cookie à essayer de désigner et une liste de mots à utiliser. Si vous n'avez pas de liste de mots, CookieMonster est livré avec une liste de mots par défaut provenant du projet Flask-Unsign. Les listes de mots de CookieMonster sont un peu différentes ; chaque ligne doit être encodée en base64. Cela est dû au fait que les projets Python sont particulièrement permissifs quant à l'insertion d'octets indésirables dans ces clés, et nous devons être capables de les gérer correctement.

Un exemple d'utilisation du CLI avec un cookie statique, ou avec une URL :

root@kitploit:~
% ./cookiemonster -cookie "gAJ9cQFYCgAAAHRlc3Rjb29raWVxAlgGAAAAd29ya2VkcQNzLg:1mgnkC:z5yDxzI06qYVAU3bkLaWYpADT4I"
🍪 CookieMonster 1.3.0
ℹ️ CookieMonster loaded the default wordlist; it has 38919 entries.
✅ Success! I discovered the key for this cookie with the django decoder; it is "changeme".

% ./cookiemonster -url "https://httpbingo.org/cookies/set?abc=gAJ9cQFYCgAAAHRlc3Rjb29raWVxAlgGAAAAd29ya2VkcQNzLg:1mgnkC:z5yDxzI06qYVAU3bkLaWYpADT4I"
🍪 CookieMonster 1.3.0
⚠️  I got a non-200 status code from this URL; it was 302.
ℹ️ CookieMonster loaded the default wordlist; it has 38919 entries.
✅ Success! I discovered the key for this cookie with the django decoder; it is "changeme".

Prise en charge d'Express

CookieMonster est capable de prendre en charge les cookies signés avec cookie-session, ce qui est courant avec Express. Cependant, il fait plusieurs choses étranges qui nécessitent de la prudence pour utiliser cet outil. Une réponse typique d'une application cookie-session ressemble à ceci :

root@kitploit:~
set-cookie: session=eyJhbmltYWxzIjoibGlvbiJ9
set-cookie: session.sig=Vf2INocdJIqKWVfYGhXwPhQZNFI

Pour passer cela dans CookieMonster, vous devez inclure à la fois le nom du cookie et le cookie de signature. Dans cet exemple, vous appelleriez CookieMonster comme ceci : cookiemonster -cookie session=eyJhbmltYWxzIjoibGlvbiJ9^Vf2INocdJIqKWVfYGhXwPhQZNFI (notez le délimiteur ^ et le nom du cookie préfixé). L'API accepte ce même format dans monster.NewCookie.

Prise en charge de la re-signature

CookieMonster prend en charge de manière limitée la re-signature d'un cookie une fois qu'il a été désigné, avec le flag -resign. Cela implique de modifier le corps du cookie pour correspondre à votre entrée, puis de recalculer la signature avec la clé que nous avons découverte. Actuellement, vous pouvez le faire pour les cookies décodés par Django ; assurez-vous de passer le cookie original à -cookie, et passez à -resign une chaîne de texte non encodée que vous souhaitez voir à l'intérieur du cookie. CookieMonster encodera correctement votre entrée puis resignera le cookie.

Utilisation de l'API

CookieMonster expose pkg/monster, ce qui permet à d'autres applications d'en tirer facilement parti. C'est beaucoup plus performant que de démarrer le CLI si vous testez de nombreux cookies. Un exemple d'utilisation est ci-dessous.

root@kitploit:~
import (
    "github.com/iangcarroll/cookiemonster/pkg/monster"
    "errors"
)

var (
	//go:embed wordlists/my-wordlist.txt
	monsterWordlist string

	wl = monster.NewWordlist()
)

func init() {
	if err := wl.LoadFromString(monsterWordlist); err != nil {
        panic(err)
    }
}

func MonsterRun(cookie string) (success bool, err error) {
	c := monster.NewCookie(cookie)

	if !c.Decode() {
		return false, errors.New("could not decode")
	}

	if _, success := c.Unsign(wl, 100); !success {
		return false, errors.New("could not unsign")
	}

	return true, nil
}

Crédits

CookieMonster est construit avec l'inspiration de plusieurs sources, et est livré avec les excellentes listes de mots Flask-Unsign.

  • https://github.com/Paradoxis/Flask-Unsign
  • https://github.com/nicksanders/rust-django-signing
Télécharger l’outil