mcpField
M
mitm-find-enumerable

mitm-find-enumerable

github.com/instavmセキュリティ8774 回インストール13 週間前に更新
リポジトリ

mitm-find-enumerable について

mitmproxyの通信ログを調べ、IDを列挙できるエンドポイントや予測可能なパターンを探すセキュリティスキルです。パラメーターや範囲、露出データ、修正案を報告します。

主な機能

  1. 01連番や予測可能なIDの検出
  2. 02弱いエンコードの識別子の確認
  3. 03ページネーション制限不足の検出
  4. 04パターン・範囲・露出データの報告

活用シーン

  1. 01取得した通信ログから列挙可能なエンドポイントを確認
  2. 02リソースの一括取得リスクを評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/instavm/security-skills --skill mitm-find-enumerable

インストール後、Claude Code で/mitm-find-enumerableを入力して読み込まれたか確認します。

詳細

列挙可能なエンドポイントを見つける

mitmproxy のダンプ(log.txt)を分析し、列挙可能なエンドポイントを探します:$ARGUMENTS

必要条件:カレントディレクトリに log.txt が必要です。存在しない場合は、先にトラフィックをキャプチャしてください:

mitmdump --set flow_detail=3 2>&1 | tee log.txt

エンドポイントが列挙可能となる条件

1. 連続する ID
  • /api/user/1、/api/user/2、/api/user/3
  • /order/100001、/order/100002
  • /transaction/TXN00001
2. 予測可能なパターン
  • 日付ベース:/report/2024-01-01
  • タイムスタンプ:/log/1704067200
  • 任意のパラメーターの単純な増分
3. 弱いエンコード
  • Base64 形式の数値:/profile/MTIzNDU=(12345)
  • 16 進数:/data/0x1A2B
  • URL セーフな Base64
4. ページネーションの制限がない
  • /api/users?limit=999999
  • /search?count=all

テスト用コマンド

# Sequential iteration
for i in {1..100}; do
  curl -s "https://target.com/api/resource/$i" >> output.json
  sleep 0.5
done

# Base64 iteration
for i in {1000..1100}; do
  id=$(echo -n $i | base64)
  curl -s "https://target.com/api/resource/$id"
done

# Date iteration
for d in {01..31}; do
  curl -s "https://target.com/api/report/2024-01-$d"
done

出力形式

各検出項目について:

  • エンドポイント:URL パターン
  • パラメーター:反復可能な値
  • パターン:連続値/Base64/日付など
  • サンプル範囲:観測された値
  • 公開されるデータ:各反復で明らかになる内容
  • 一括テスト:一括抽出用の curl コマンド
  • 修正方法:UUID の使用、認証の追加、レート制限

コメント