Hello there, ('ω')ノ
検証一覧:マニュアルで Lab「Flawed enforcement of business rules」を解けるか?
マニュアル節 | 想定されるチェックポイント・手順 | Lab での実際の挙動 | 適合結果 |
---|---|---|---|
🎯 1. ビジネスロジックの脆弱性とは? 「クーポン・割引を不正に重複適用できるか」 |
割引を無制限に積み上げられないか確認 | NEWCUST5 と SIGNUP30 を交互に入力すると割引が累積 | ✔ |
🧭 2. チェックすべき機能 🎁 クーポン適用/💳 支払い処理 |
同一クーポンや異なるクーポンの複数回適用可否 | 直前と同じコードは拒否だが、別コードを挟むと再利用可 | ✔ |
🛠️ 3. 診断方法(基本手順) 2. 複数パターンで操作/3. リクエスト改変 |
UI または Burp で coupon=CODE を連投 |
割引額が無制限に増え合計がマイナスに | ✔ |
🧪 4. テスト項目とペイロード例 重複クーポン使用 |
coupon=NEWCUST5 → coupon=SIGNUP30 → … を繰返し |
クーポン計算のリセットロジック欠如を確認 | ✔ |
⚠️ 6. 注意点 繰り返し実行で不自然な挙動 |
割引総額が商品の上限を超えないか/負値にならないか | 合計が -\$15 など負値でも決済成立 | ✔ |
🧰 7. 補助ツール Burp Repeater/DevTools |
Repeater でクーポンリクエストをスクリプト的に連射 | 自動化しても同じ脆弱性を再現 | ✔ |
フロー再現(マニュアル → Lab)
機能選定(🧭 2) 「クーポン機能」は金銭が絡むため優先的にテスト。
クーポン取得
- 画面で NEWCUST5 を確認。
- ニュースレター登録 → メールリンクで SIGNUP30 を取得。
割引ロジックの検証(🛠️ 3/🧪 4)
- 皮ジャンをカートへ。
- チェックアウト画面で
NEWCUST5
を適用。 - 続けて
SIGNUP30
を適用。 - 再度
NEWCUST5
を入力… 交互に送信。 - 合計が残高(例:\$100)未満、または負値になったら決済ボタンを押下。
観測結果(⚠️ 6)
- サーバ側で適用済みクーポンのグローバル重複チェックがない。
- 割引が無限累積し、合計 \$0 以下でも注文が確定。
結論
ビジネスロジック診断マニュアルは、Lab Flawed enforcement of business rules に対しても
- 脆弱性発見 → 割引バイパス → 購入完了
の全工程をそのままガイドできます。 特に 重複クーポン使用テスト、繰り返し実行の不自然挙動確認 の節が Lab 攻略手順と完全に一致し、追加の手引きは不要でした。
Best regards, (^^ゞ