mitm-find-otp について
mitmproxyの通信ログを分析し、OTPの脆弱性を証拠や影響、修正案とともに整理するセキュリティスキルです。OTPフローのテストに使えます。
主な機能
- 01レスポンスやURL内のOTP検出
- 02レート制限と認証回避の確認
- 03予測可能または再利用されるOTPの特定
- 04証拠・影響・修正案の報告
活用シーン
- 01取得したOTP送信・検証リクエストの確認
- 02総当たりやOTP漏えいリスクの評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ instavm/ security-skills --skill mitm-find-otpインストール後、Claude Code で/mitm-find-otpを入力して読み込まれたか確認します。
詳細
OTP の脆弱性を検出する
mitmproxy のダンプ(log.txt)を分析し、次の対象に関する OTP の問題を調べます:$ARGUMENTS
必要条件:現在のディレクトリに
log.txtが必要です。存在しない場合は、先にトラフィックをキャプチャしてください:mitmdump --set flow_detail=3 2>&1 | tee log.txt
脆弱性の種類
1. レスポンス内の OTP
- API レスポンス本文で OTP が返される
- ページソースや JavaScript に OTP が含まれる
- エラーメッセージに OTP が含まれる
- OTP は SMS またはメールでのみ送信し、API レスポンスには含めないでください
2. レート制限なし
- OTP 生成リクエストが無制限に可能
- 検証の試行が無制限に可能
- 4~6 桁の OTP を総当たり攻撃できる
3. OTP のバイパス
- レスポンスを改変すると OTP 検証をバイパスできる
verified: falseをverified: trueに変更できる- 空の OTP が受け入れられる
- 古い OTP が引き続き有効
4. 予測可能な OTP
- 連番の OTP
- タイムスタンプに基づく OTP
- 複数のリクエストで同じ OTP が使われる
5. OTP の漏えい
- URL パラメーターに OTP が含まれる(ログに記録される)
- ソースコード内の関数名から OTP が確認できる
- OTP が GET リクエストで送信される
テスト方法
# Check for OTP in response
curl -X POST "https://target.com/api/send-otp" \
-d "phone=1234567890" | grep -i otp
# Test rate limiting
for i in {1..20}; do
curl -X POST "https://target.com/api/verify-otp" \
-d "phone=1234567890&otp=$i"
done
# Test with empty/invalid OTP
curl -X POST "https://target.com/api/verify-otp" \
-d "phone=1234567890&otp="
出力形式
各検出結果について:
- エンドポイント:OTP の送信/検証 URL
- 問題:脆弱性の種類
- 証拠:確認された内容
- 悪用方法:再現手順
- 影響:アカウント乗っ取りのリスク
- 修正方法:サーバー側での検証、レート制限
コメント
Markdown 対応