Hello there, ('ω')ノ
検証⼀覧:マニュアルで Lab「High-level logic vulnerability」を解けるか?
マニュアル節 | 想定される⼿順・観点 | Lab での実際の挙動 | 適合結果 |
---|---|---|---|
🎯 1. ビジネスロジックの脆弱性とは? 「数量や価格を負の数にして購入できるか」 |
“数量を不正に変更(負数)して合計を改ざんできるか” に着眼 | quantity パラメータを負数にすると在庫がマイナス・合計金額が負値 | ✔ 該当 |
🧭 2. チェックすべき機能 🛒 商品購入・注文/📦 返品・キャンセル機能 |
カート内数量操作・在庫整合性を重点チェック | /cart リクエストで数量が自由に操作可能 |
✔ 指摘通り |
🛠️ 3. 診断方法(基本手順) 3. リクエスト内容を変更して再送信 |
Burp Intercept で quantity=-99 に改変し転送 |
カート数量が -99、合計が負値へ変化 | ✔ 手順そのまま適用可 |
🧪 4. テスト項目とペイロード例 数量の異常入力 "qty": -5 |
ペイロード例を quantity=-10 に置換し送信 |
在庫減算・金額減算が成功 | ✔ 実証済み |
⚠️ 6. 注意点 負の数テスト/繰り返し実行で不自然挙動 |
負数を複数回適用・在庫が無限に減るか検証 | 追加操作で合計が残高未満に | ✔ 有効 |
🧰 7. 補助ツール Burp Suite Intercept/Re-peater |
Intercept で改変 → Repeater で再試行 | Lab 解決条件を満たす | ✔ 一致 |
フロー再現(マニュアル → Lab)
機能選定(🧭 2)
- 「商品購入・注文」+「返品に近い数量改変」機能は金銭・在庫が絡むため最優先。
リクエスト観察(🛠️ 3-1〜2)
- 安価商品を追加 → POST /cart に
quantity
が含まれる。 - 価格計算はクライアント依存の可能性大。
- 安価商品を追加 → POST /cart に
パラメータ改変(🧪 4)
POST /cart
productId=1&quantity=-99
→ カート上で商品個数 -99、合計金額が負値。
合計を調整
- 皮ジャン追加後、再度安価商品に負数数量を指定し合計を残高未満へ。
- 購入完了 ⇒ Lab「Solved」。
検証結果(⚠️ 6)
- サーバ側(サーバ)検証なく負数処理/合計マイナスが許容。
- 「設計ミスによる業務的に誤った結果」の典型。
結論
ビジネスロジック診断マニュアルは、Lab High-level logic vulnerability でも
- 脆弱性発見 → 悪用 → 解決
の全過程をそのままカバーできました。特に 数量の異常入力テスト と Burp Intercept を用いたリクエスト改変 の節が、Lab の核心手順に完全一致します。
Best regards, (^^ゞ