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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mitmproxy2swagger — トラフィックキャプチャでREST APIを自動リバースエンジニアリング | Kitploit
ツール/GitHubGitHub/alufers/mitmproxy2swagger
リバースエンジニアリング情報収集ウェブセキュリティAPIセキュリティ
GitHubalufers/mitmproxy2swagger

mitmproxy2swagger

トラフィックキャプチャでREST APIを自動リバースエンジニアリング

リポジトリを見る
9.6k3701ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

mitmproxy2swagger

PyPI version Arch Linux repository

https://user-images.githubusercontent.com/5400940/168086818-c48f60ab-3f95-42eb-b435-c8b1a6326b81.mp4

mitmproxy のキャプチャを OpenAPI 3.0 仕様に自動変換するツールです。つまり、アプリを実行してトラフィックをキャプチャするだけで、REST API を自動的にリバースエンジニアリングできます。


🆕 新着!

ブラウザ DevTools からエクスポートされた HAR の処理をサポートしました。詳細は 使用方法 - HAR を参照してください。


インストール

最初に python3 と pip3 が必要です。

root@kitploit:~
$ pip install mitmproxy2swagger
# ... または ...
$ pip3 install mitmproxy2swagger
# ... または ...
$ git clone [email protected]:alufers/mitmproxy2swagger.git
$ cd mitmproxy2swagger
$ docker build -t mitmproxy2swagger .

次にリポジトリをクローンし、以下の例に従って mitmproxy2swagger を実行します。

使用方法

Mitmproxy

HTTP トラフィックを検査して仕様を作成するには、以下を行う必要があります。

  1. mitmproxy ツールを使用してトラフィックをキャプチャします。個人的には、mitmproxy に組み込まれている Web インターフェースである mitmweb を使用することをお勧めします。

    root@kitploit:~
    $ mitmweb
    Web server listening at http://127.0.0.1:8081/
    Proxy server listening at http://*:9999
    ...
    

    重要

    クライアントが mitmproxy のプロキシを使用するように設定する方法については、mitmproxy ドキュメント を参照してください。

  2. トラフィックをフローファイルに保存します。

    mitmweb では、「File」メニューの「Save」オプションから保存できます。

    「File」メニューにある「Save」オプションの位置を示すスクリーンショット

  3. mitmproxy2swagger の最初のパスを実行します。

    root@kitploit:~
    $ mitmproxy2swagger -i <mitmproxy_flow_へのパス> -o <出力スキーマへのパス> -p <APIプレフィックス>
    # ... または ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <mitmproxy_flow_へのパス> -o <出力スキーマへのパス> -p <APIプレフィックス>
    

    既存のスキーマを使用することもできます。その場合、既存のスキーマに新しいデータが追加されます。異なるフローキャプチャで数回実行しても、キャプチャデータは安全にマージされます。

    <APIプレフィックス> は、リバースエンジニアリングしたい API のベース URL です。mitmproxy で送信されるリクエストを観察して取得する必要があります。

    例えば、アプリが次のようなリクエストを行った場合:

    root@kitploit:~
    https://api.example.com/v1/login
    https://api.example.com/v1/users/2
    https://api.example.com/v1/users/2/profile
    

    プレフィックスはおそらく https://api.example.com/v1 になります。

  4. 最初のパスを実行すると、スキーマファイルに次のようなセクションが作成されているはずです。

    root@kitploit:~

HAR

  1. ブラウザ DevTools からトラフィックをキャプチャしてエクスポートします。

    ブラウザ DevTools の Network タブで、「Export HAR」ボタンをクリックします。

    「Export HAR」ボタンの位置を示すスクリーンショット

  2. その後は mitmproxy ダンプの場合と同様に進めます。mitmproxy2swagger は自動的に HAR ファイルを検出して処理します。

出力例

examples を参照してください。生成されたスキーマと、(redoc-cli による) 生成されたドキュメントの HTML ファイルがあります。

生成された HTML ファイル もご覧ください。

開発と貢献

このプロジェクトでは以下を使用しています:

  • 依存関係管理: uv
  • コードフォーマットとリンティング: prek
  • 単体テスト: pytest

依存関係をインストールするには:

root@kitploit:~
uv sync

リンターを実行するには:

root@kitploit:~
uv run prek run --all-files

prek フックをインストールするには:

root@kitploit:~
uv run prek install

テストを実行するには:

root@kitploit:~
uv run pytest

カバレッジ付きでテストを実行するには:

root@kitploit:~
uv run pytest --cov=mitmproxy2swagger

ライセンス

MIT

ツールをダウンロード
x-path-templates: # エンドポイントを生成するには、ignore: プレフィックスを削除してください # 上位の行ほど優先され、マッチングは貪欲に行われます - ignore:/addresses - ignore:/basket - ignore:/basket/add - ignore:/basket/checkouts - ignore:/basket/coupons/attach/{id} - ignore:/basket/coupons/attach/104754

テキストエディタでスキーマファイルを編集し、生成したいパスから ignore: プレフィックスを削除してください。パス内のパラメータも調整できます。

  • mitmproxy2swagger の 2 回目のパスを実行します。

    root@kitploit:~
    $ mitmproxy2swagger -i <mitmproxy_flow_へのパス> -o <出力スキーマへのパス> -p <APIプレフィックス> [--examples]
    # ... または ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <mitmproxy_flow_へのパス> -o <出力スキーマへのパス> -p <APIプレフィックス> [--examples]
    

    同じスキーマファイルでコマンドを再度実行します。編集した行を読み取り、エンドポイントの説明を生成します。

    mitmproxy2swagger は既存のエンドポイント記述を上書きしません。上書きしたい場合は、2 回目のパスを実行する前にそれらを削除してください。

    --examples を指定すると、リクエストとレスポンスにサンプルデータが追加されます。このオプションを使用する際は、機密データ(トークン、パスワード、個人情報など)がスキーマに追加される可能性があるため注意してください。 --headers を指定すると、リクエストとレスポンスにヘッダーデータが追加されます。このオプションを使用する際は、機密データが追加される可能性があるため注意してください。