mitm-find-checksum について
mitm-find-checksum は、mitmproxy の通信ログからチェックサムや署名の脆弱性を探すセキュリティテスト用スキルです。弱いアルゴリズム、対象フィールドの不足、ハッシュ未検証を調べ、エンドポイントや影響、修正案ごとに整理します。
主な機能
- 01mitmproxy の通信ログを分析
- 02チェックサム・署名パラメーターを検索
- 03弱いアルゴリズムと署名衝突を確認
- 04ハッシュ対象フィールドを調査
- 05バックエンドのハッシュ検証を確認
活用シーン
- 01決済コールバックの署名検証を点検
- 02金額がハッシュに含まれるか確認
- 03チェックサム生成エンドポイントの露出を調査
- 04脆弱性の影響と修正案を記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ instavm/ security-skills --skill mitm-find-checksumインストール後、Claude Code で/mitm-find-checksumを入力して読み込まれたか確認します。
詳細
チェックサム/署名の脆弱性を検出する
mitmproxy のダンプ(log.txt)を分析し、次の項目に関するチェックサムの問題を調べます:$ARGUMENTS
必要なもの: カレントディレクトリに
log.txtが必要です。存在しない場合は、まず通信をキャプチャしてください:mitmdump --set flow_detail=3 2>&1 | tee log.txt
脆弱性の種類
1. チェックサム生成機能の露出
- エラー時でも API がハッシュを返す
- 任意のチェックサムを生成できる
- チェックサムのエンドポイントに認証なしでアクセスできる
2. 脆弱なアルゴリズム
- ソルトなしの MD5
- SHA1(非推奨)
- 単純な連結
3. 署名の衝突
- 異なる操作に同じ署名が使われる
- 決済と返金に同じアルゴリズムが使われる
- パラメーターの並べ替えで同じハッシュになる
4. チェックサムに含まれないフィールド
- 金額がチェックサムの計算に含まれない
- ステータスが含まれない
- 重要なフィールドが欠落している
5. チェックサムが検証されない
- ハッシュのパラメーターが存在するが無視される
- バックエンドが任意のハッシュ値を受け入れる
- 特定のエンドポイントでのみ検証される
検出するパターン
# Look for hash/checksum parameters
hash=, checksum=, signature=, sign=, hmac=
# Look for checksum generation APIs
/generateHash, /getChecksum, /createSignature
# Error responses with valid checksums
"error": "...", "checksum": "valid_hash"
テスト方法
# Test if checksum is validated
curl -X POST "https://target.com/callback" \
-d "amount=100&status=success&hash=invalid"
# Test checksum generation
curl "https://target.com/api/generateChecksum" \
-d "amount=1&status=success"
出力形式
検出事項ごとに、次の情報を記載します:
- エンドポイント: チェックサムが使われる場所
- 問題: 脆弱性の種類
- アルゴリズム: 特定できる場合
- 含まれるフィールド: ハッシュに含まれる内容
- 悪用方法: バイパスまたは生成の方法
- 影響: 決済詐欺、データ改ざん
- 修正方法: 強力な HMAC を使用し、すべてのフィールドを含める
コメント
Markdown 対応