Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cookiemonster — Decodifica e rimuove la firma dai cookie di sessione vulnerabili dei framework Django, Flask, Laravel, Express e JWT. Supporta decoder basati su HMAC, wordlist in base64 e pipeline di automazione per la rapida scoperta di vulnerabilità. | Kitploit
Strumenti/GitHubGitHub/iangcarroll/cookiemonster
Analisi delle VulnerabilitàSicurezza WebCrittografiaPenetration Testing
GitHubiangcarroll/cookiemonster

cookiemonster

Decodifica e rimuove la firma dai cookie di sessione vulnerabili dei framework Django, Flask, Laravel, Express e JWT. Supporta decoder basati su HMAC, wordlist in base64 e pipeline di automazione per la rapida scoperta di vulnerabilità.

Vedi Repository
982751 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

🍪 CookieMonster

CookieMonster è uno strumento da riga di comando e un'API per decodificare e modificare cookie di sessione vulnerabili provenienti da diversi framework. È progettato per essere eseguito in pipeline di automazione che devono essere in grado di elaborare efficientemente un gran numero di tali cookie per scoprire rapidamente vulnerabilità. Inoltre, CookieMonster è estensibile e può supportare facilmente nuovi formati di cookie.

Vale la pena sottolineare che CookieMonster trova vulnerabilità negli utenti dei framework, di solito non nei framework stessi. Questi utenti possono risolvere le vulnerabilità trovate tramite CookieMonster configurando il framework per utilizzare una chiave segreta forte.

Caratteristiche

  • Decodifica e rimuove la firma dai cookie di sessione di Laravel, Django, Flask, Rack ed Express, e gestisce anche i JWT grezzi.
  • Valuta rapidamente i cookie; ignora cookie non validi e non supportati, e testa velocemente quelli che può.
  • Sfrutta appieno le implementazioni native veloci di Go per le funzioni di hash.
  • Decodifica intelligentemente cookie con codifica URL e Base64 (ad es. il Base64 di un JWT) quando la decodifica iniziale fallisce.
  • Supporta molti algoritmi per decodificatori basati su HMAC, anche se il framework di solito ne usa solo uno.
  • Il formato flessibile della wordlist codificata in base64 consente di aggiungere come voce qualsiasi sequenza di byte chiave; viene fornito con un elenco predefinito ragionevole.
FrameworkSupportatoNote
JSON Web Tokens✅HS256, HS384, HS512
Django✅Algoritmi comuni
Flask✅Algoritmi comuni
Rack✅Algoritmi comuni
Express (cookie-signer)✅Algoritmi comuni
Laravel✅AES-CBC-128/256 (GCM non ancora supportato)
itsdangerous✅URLSafeSerializer/URLSafeTimedSerializer (salt predefinito)
Altri❌Non ancora!

Per iniziare

Per installare CookieMonster, installa Go e poi installa il CLI:

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

CookieMonster ha bisogno solo di due elementi essenziali: un cookie da provare a rimuovere la firma e una wordlist da utilizzare. Se non hai una wordlist, CookieMonster viene fornito con una wordlist predefinita dal progetto Flask-Unsign. Le wordlist di CookieMonster sono leggermente diverse; ogni riga deve essere codificata in base64. Questo perché i progetti Python sono particolarmente liberali nell'inserire byte spuri in queste chiavi, e dobbiamo essere in grado di gestirli correttamente.

Un esempio di utilizzo del CLI con un cookie statico o con un URL:

root@kitploit:~
% ./cookiemonster -cookie "gAJ9cQFYCgAAAHRlc3Rjb29raWVxAlgGAAAAd29ya2VkcQNzLg:1mgnkC:z5yDxzI06qYVAU3bkLaWYpADT4I"
🍪 CookieMonster 1.3.0
ℹ️ CookieMonster ha caricato la wordlist predefinita; ha 38919 voci.
✅ Successo! Ho scoperto la chiave per questo cookie con il decodificatore django; è "changeme".

% ./cookiemonster -url "https://httpbingo.org/cookies/set?abc=gAJ9cQFYCgAAAHRlc3Rjb29raWVxAlgGAAAAd29ya2VkcQNzLg:1mgnkC:z5yDxzI06qYVAU3bkLaWYpADT4I"
🍪 CookieMonster 1.3.0
⚠️  Ho ottenuto un codice di stato non 200 da questo URL; era 302.
ℹ️ CookieMonster ha caricato la wordlist predefinita; ha 38919 voci.
✅ Successo! Ho scoperto la chiave per questo cookie con il decodificatore django; è "changeme".

Supporto per Express

CookieMonster è in grado di supportare cookie firmati con cookie-session, comune con Express. Tuttavia, fa diverse cose strane che richiedono attenzione per utilizzare questo strumento. Una risposta comune da un'applicazione cookie-session assomiglia a questa:

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

Per passare questo a CookieMonster, devi includere sia il nome del cookie che il cookie della firma. In questo esempio, chiameresti CookieMonster così: cookiemonster -cookie session=eyJhbmltYWxzIjoibGlvbiJ9^Vf2INocdJIqKWVfYGhXwPhQZNFI (nota il delimitatore ^ e il nome del cookie prefisso). L'API accetta lo stesso formato in monster.NewCookie.

Supporto per la rifirma

CookieMonster ha un supporto limitato per rifirmare un cookie una volta che è stato privato della firma, con il flag -resign. Ciò comporta la modifica del corpo del cookie per corrispondere al tuo input, e poi il ricalcolo della firma con la chiave scoperta. Attualmente, puoi farlo per i cookie decodificati da Django; assicurati di passare il cookie originale a -cookie, e passa a -resign una stringa di testo non codificata che desideri all'interno del cookie. CookieMonster codificherà correttamente il tuo input e poi rifirmerà il cookie.

Utilizzo dell'API

CookieMonster espone pkg/monster, che consente ad altre applicazioni di sfruttarlo facilmente. Questo è molto più performante che avviare il CLI se stai testando molti cookie. Un esempio di utilizzo è riportato di seguito.

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
}

Crediti

CookieMonster è costruito con ispirazione da diverse fonti e viene fornito con le eccellenti wordlist di Flask-Unsign.

  • https://github.com/Paradoxis/Flask-Unsign
  • https://github.com/nicksanders/rust-django-signing
Scarica lo strumento