Shikata Ga Nai

Private? There is no such things.

ビジネスロジックの脆弱性診断マニュアルとLab「Flawed enforcement of business rules」の検証

Hello there, ('ω')ノ

検証一覧:マニュアルで Lab「Flawed enforcement of business rules」を解けるか?

マニュアル節 想定されるチェックポイント・手順 Lab での実際の挙動 適合結果
🎯 1. ビジネスロジックの脆弱性とは?
「クーポン・割引を不正に重複適用できるか」
割引を無制限に積み上げられないか確認 NEWCUST5 と SIGNUP30 を交互に入力すると割引が累積
🧭 2. チェックすべき機能
🎁 クーポン適用/💳 支払い処理
同一クーポンや異なるクーポンの複数回適用可否 直前と同じコードは拒否だが、別コードを挟むと再利用可
🛠️ 3. 診断方法(基本手順)
2. 複数パターンで操作/3. リクエスト改変
UI または Burp で coupon=CODE を連投 割引額が無制限に増え合計がマイナスに
🧪 4. テスト項目とペイロード例
重複クーポン使用
coupon=NEWCUST5coupon=SIGNUP30 → … を繰返し クーポン計算のリセットロジック欠如を確認
⚠️ 6. 注意点
繰り返し実行で不自然な挙動
割引総額が商品の上限を超えないか/負値にならないか 合計が -\$15 など負値でも決済成立
🧰 7. 補助ツール
Burp Repeater/DevTools
Repeater でクーポンリクエストをスクリプト的に連射 自動化しても同じ脆弱性を再現

フロー再現(マニュアル → Lab)

  1. 機能選定(🧭 2) 「クーポン機能」は金銭が絡むため優先的にテスト。

  2. クーポン取得

    • 画面で NEWCUST5 を確認。
    • ニュースレター登録 → メールリンクで SIGNUP30 を取得。
  3. 割引ロジックの検証(🛠️ 3/🧪 4)

    1. 皮ジャンをカートへ。
    2. チェックアウト画面で NEWCUST5 を適用。
    3. 続けて SIGNUP30 を適用。
    4. 再度 NEWCUST5 を入力… 交互に送信
    5. 合計が残高(例:\$100)未満、または負値になったら決済ボタンを押下。
  4. 観測結果(⚠️ 6)

    • サーバ側で適用済みクーポンのグローバル重複チェックがない
    • 割引が無限累積し、合計 \$0 以下でも注文が確定。

結論

ビジネスロジック診断マニュアルは、Lab Flawed enforcement of business rules に対しても

  • 脆弱性発見 → 割引バイパス → 購入完了

の全工程をそのままガイドできます。 特に 重複クーポン使用テスト繰り返し実行の不自然挙動確認 の節が Lab 攻略手順と完全に一致し、追加の手引きは不要でした。

Best regards, (^^ゞ