root@thehacksparrow:~/writeups$ SYSTEM ONLINE
root@sparrow:~/writeups$ cat vulnerability-pattern-business-logic.md
// bug-bounty

Business Logic Abuse

23 Jul 2026 · 3 min read

What it is

Abusing intended functionality in a way the application's rules never anticipated — not a technical injection, just performing steps in an order, combination or value range the logic didn't defend against: changing an email without confirming it, reusing a coupon, tampering with a price/quantity field client-side, joining a team without an invite.

Why it matters

These bugs are invisible to scanners and WAFs because every individual request looks perfectly valid — the flaw is in the sequence or the assumption, not the syntax. Programs value them highly because they map directly onto real financial or operational harm.

Where to look

  • Checkout/cart flows, coupons, credits, gift cards, subscription plans
  • Team/invite flows, multi-step wizards, any flow with a 'confirm later' step

How I test it

  1. Map the full happy path of a flow end to end, every step in order.
  2. At each step ask: what if I skip this, repeat this, do it out of order, or substitute a different value than the UI offers?
  3. Intercept and edit values the backend should be recalculating itself — price, quantity, discount, role — and see if it actually recalculates or just trusts the client.
  4. For price manipulation specifically: capture the cart/checkout request (
    {"product_id": 123, "price": 99.99}
    ), change the price field directly (
    {"product_id": 123, "price": 1.00}
    ), and see if the final charge reflects it.
  5. Try replaying a step from a different account, or with a stale/expired session, to see if state assumptions hold.

Hunting checklist

  • Mapped the complete happy path
  • Tried skipping a step
  • Tried repeating a one-time step
  • Tried reordering steps
  • Tampered with any client-visible price/quantity/role field
  • Confirmed the backend doesn't recalculate the tampered value
  • Tried the flow with a stale or cross-account session

Evidence to collect

  • The full request sequence, in order
  • The tampered request and its response
  • Proof the final state (charge, balance, role) reflects the tampered value
  • Clear real-world impact statement — money, access, or data affected

Recommended fix

  • Recalculate all financial/authorization-relevant values server-side, never trust the client's copy
  • Enforce step order and one-time-use constraints server-side
  • Idempotency keys for anything that shouldn't be repeatable