mitm-find-callback について
mitm-find-callbackは、mitmproxyの通信ログで決済コールバックを調べるセキュリティスキルです。署名、ステータス、金額、チェックサムの問題を確認し、テストと修正案を含めて検出事項を整理します。
主な機能
- 01コールバックの署名検証を確認
- 02決済ステータスや金額の改ざんリスクを確認
- 03署名衝突とチェックサム生成を確認
- 04検出事項の影響と修正案を整理
活用シーン
- 01決済コールバックの署名検証を監査
- 02注文ステータスや金額の改ざんリスクを評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ instavm/ security-skills --skill mitm-find-callbackインストール後、Claude Code で/mitm-find-callbackを入力して読み込まれたか確認します。
詳細
決済コールバックの脆弱性を検出する
mitmproxy のダンプ(log.txt)を分析して、次の決済コールバックの問題を調べます:$ARGUMENTS
必要なもの:現在のディレクトリに
log.txtが必要です。ない場合は、先にトラフィックをキャプチャしてください:mitmdump --set flow_detail=3 2>&1 | tee log.txt
脆弱性の種類
1. ハッシュ/署名が検証されない
- コールバックが任意のハッシュ値を受け入れる
- ハッシュパラメーターが存在するが、検証されていない
- 有効な署名がなくてもステータスを変更できる
2. ステータスの改ざん
status=failedをstatus=successに変更するunmappedstatusパラメーターを変更する- 取引結果を改ざんする
3. 金額の改ざん
- コールバックの前に金額を変更する
- 少額を支払って注文全額分の商品を受け取る
- 小数値を操作する
4. 署名の衝突
- 決済と返金で同じ署名が使える
- パラメーターの並べ替えで同じハッシュが生成される
- 署名の計算に必要なフィールドが欠けている
5. チェックサム生成の露出
- API がエラー時にもチェックサムを返す
- 任意のチェックサムを生成できる
- チェックサムのアルゴリズムが脆弱(ソルトなしの MD5/SHA1)
テスト方法
# Test callback with modified status
curl -X POST "https://merchant.com/payment/callback" \
-d "txnid=12345&status=success&hash=original_hash"
# Test with invalid hash
curl -X POST "https://merchant.com/payment/callback" \
-d "txnid=12345&status=success&hash=aaaa"
トラフィックにおける危険信号
- すべてのパラメーターがリクエストに含まれるコールバック URL
- クライアント側コードからハッシュを確認できる
- JavaScript にソルト/シークレットが含まれる
- 有効なチェックサムを含むエラーレスポンス
出力形式
検出事項ごとに、以下を記載します:
- コールバック URL:脆弱なエンドポイント
- 問題:改ざん可能な内容
- パラメーター:影響を受けるフィールド
- テスト:悪用方法
- 影響:無料注文、返金など
- 修正方法:適切なサーバー側の検証
コメント
Markdown 対応