Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cookiemonster — Django、Flask、Laravel、Express、JWTフレームワークからの脆弱なセッションクッキーをデコードおよび署名解除します。HMACベースのデコーダー、base64ワードリスト、迅速な脆弱性発見のための自動化パイプラインに対応しています。 | Kitploit
ツール/GitHubGitHub/iangcarroll/cookiemonster
脆弱性分析ウェブセキュリティ暗号化ペネトレーションテスト
GitHubiangcarroll/cookiemonster

cookiemonster

Django、Flask、Laravel、Express、JWTフレームワークからの脆弱なセッションクッキーをデコードおよび署名解除します。HMACベースのデコーダー、base64ワードリスト、迅速な脆弱性発見のための自動化パイプラインに対応しています。

リポジトリを見る
982751年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

🍪 CookieMonster

CookieMonsterは、複数のフレームワークの脆弱なセッションCookieをデコードおよび変更するためのコマンドラインツール兼APIです。大量のこれらのCookieを効率的に処理し、脆弱性を迅速に発見する必要がある自動化パイプラインで実行するように設計されています。さらに、CookieMonsterは拡張可能で、新しいCookie形式を簡単にサポートできます。

強調すべき点は、CookieMonsterはフレームワーク自体ではなく、通常はフレームワークのユーザーに脆弱性を発見するということです。これらのユーザーは、フレームワークを強力な秘密鍵を使用するように設定することで、CookieMonsterを介して発見された脆弱性を解決できます。

Features

  • Laravel、Django、Flask、Rack、ExpressからのセッションCookieをデコードおよびアンサインし、生のJWTも処理します。
  • Cookieを迅速に評価し、無効またはサポートされていないCookieは無視し、可能なものはすぐにテストします。
  • Goの高速なネイティブ実装のハッシュ関数を最大限に活用します。
  • 最初のデコードが失敗した場合、URLエンコードおよびBase64エンコードされたCookie(例:JWTのBase64)をインテリジェントにデコードします。
  • HMACベースのデコーダーに対して多くのアルゴリズムをサポートします(フレームワークが通常1つしか使用しない場合でも)。
  • 柔軟なbase64エンコードされたワードリスト形式により、任意のバイト列の鍵をエントリとして追加できます。適切なデフォルトリストが同梱されています。
FrameworkSupportedNotes
JSON Web Tokens✅HS256, HS384, HS512
Django✅一般的なアルゴリズム
Flask✅一般的なアルゴリズム
Rack✅一般的なアルゴリズム
Express (cookie-signer)✅一般的なアルゴリズム
Laravel✅AES-CBC-128/256(GCMは未サポート)
itsdangerous✅URLSafeSerializer/URLSafeTimedSerializer(デフォルトのソルト)
Others❌まだです

Getting Started

CookieMonsterをインストールするには、GoをインストールしてからCLIをインストールしてください:

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

CookieMonsterに必要なのは、アンサインを試みるCookieと、使用するワードリストの2つだけです。ワードリストがない場合、CookieMonsterにはFlask-Unsignプロジェクトのデフォルトワードリストが同梱されています。CookieMonsterのワードリストは少し異なります。各行はbase64でエンコードされている必要があります。これは、Pythonプロジェクトが特にこれらの鍵にゴミバイトを挿入することに寛大であり、それらを適切に処理できるようにする必要があるためです。

An example of using the CLI with a static cookie, or with a 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".

Express support

CookieMonsterは、Expressで一般的なcookie-sessionで署名されたCookieをサポートできます。ただし、このツールを使用するには注意が必要ないくつかの奇妙な動作があります。cookie-sessionアプリケーションからの一般的な応答は次のようになります:

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

これをCookieMonsterに渡すには、Cookie名と署名Cookieの両方を含める必要があります。この例では、次のようにCookieMonsterを呼び出します:cookiemonster -cookie session=eyJhbmltYWxzIjoibGlvbiJ9^Vf2INocdJIqKWVfYGhXwPhQZNFI(区切り文字^と接頭辞付きのCookie名に注意)。APIはmonster.NewCookieで同じ形式を受け入れます。

Resigning support

CookieMonsterは、-resignフラグを使用して、一度アンサインされたCookieを再署名する限定的なサポートを提供します。これには、Cookieの本文を入力に一致するように変更し、発見した鍵で署名を再計算することが含まれます。現在、DjangoでデコードされたCookieに対してこれを行うことができます。元のCookieを-cookieに渡し、-resignにはCookie内に含めたいエンコードされていないテキスト文字列を渡してください。CookieMonsterは入力を正しくエンコードし、Cookieを再署名します。

API usage

CookieMonsterはpkg/monsterを公開しており、他のアプリケーションがそれを簡単に利用できます。多くのCookieをテストする場合、CLIを起動するよりもはるかにパフォーマンスが高いです。以下に使用例を示します。

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
}

Credits

CookieMonsterはいくつかのソースからインスピレーションを得て構築されており、優れたFlask-Unsignのワードリストが同梱されています。

  • https://github.com/Paradoxis/Flask-Unsign
  • https://github.com/nicksanders/rust-django-signing
ツールをダウンロード