Hello there, ('ω')ノ
🔎 1. 攻撃対象の条件を確認しよう
まず、狙うべき対象は以下のような「1回限り」または「回数制限あり」のエンドポイントです:
- 割引コードやギフトカードの使用
- 商品のレビュー投稿
- ログイン試行(回数制限あり)
- CAPTCHAの送信
- 資金の送金や引き出し
ポイント: 単に使い捨てではなく、「使うことで何かしらセキュリティ的に意味がある機能」である必要があります。
🧪 2. Burp Repeater でリクエストを複製
対象のリクエスト(例:割引コードの適用)をBurp Repeaterで開きます。
- 通常通り対象機能を実行してリクエストをキャプチャ。
- Repeater に送信して、同じリクエストを複数タブで複製します。
🚀 3. 短時間で一気に送信する
複製したリクエストをできるだけ素早く連続して送信します。
- タブを素早く切り替えながら「Send」ボタンを連打。
- または、Burp Turbo Intruder を使えば、同時リクエストをより自動化可能。
⏱ 4. タイミングの重要性
競合状態を成功させるには、「競合ウィンドウ(レースウィンドウ)」にタイミングが合うことが必要です。
- 通常、このウィンドウは数ミリ秒〜数十ミリ秒。
- すべてのリクエストを同時に送っても、サーバー側の負荷やネットワーク遅延によって実行順序は予測不能。
- 成功は確率的なものなので、何度も試すことが重要です。
✅ 5. 成功の判断ポイント
以下のような現象が確認できれば、競合状態による制限突破に成功しています:
- 1回しか使えない割引コードが複数回適用された
- レビューが複数回投稿できた
- 残高以上の送金が複数通った
- CAPTCHAが何度も通用した
🎯 攻略のコツまとめ
コツ | 内容 |
---|---|
同一リクエストを大量コピー | 成功率アップ |
手動連打より Turbo Intruder が確実 | 自動並列送信でレースウィンドウ狙いやすい |
成功率は運もある | 何度もトライして統計的に勝つ |
ログを比較してレスポンスの違いを見る | 成功した場合、レスポンスの中身が違う |
🛡 対策方法の理解も重要!
開発者視点では、以下のような防御が考えられます:
- トランザクション処理のアトミック性の確保
- データベースレベルのロックや一意制約
- リクエストの排他制御(ミューテックスなど)
Best regards, (^^ゞ