‹ بازگشت به کتابخانه‌ی رایت‌آپ‌ها
Business Logic شدت: متوسط

استفاده‌ی مجدد از کد تخفیف یک‌بارمصرف با تغییر ترتیب درخواست‌ها

چگونه ترتیب نامتعارف درخواست‌ها می‌تواند یک فرض ضمنی برنامه را نقض کند.

نویسنده: تیم PentesterHub

فرض کنید یک کد تخفیف فقط یک‌بار باید اعمال شود و منطق برنامه آن را «بعد از پرداخت موفق» باطل می‌کند. اگر مهاجم بتواند با دستکاری پارامترها (مثل لغو سفارش بعد از دریافت تایید اما قبل از باطل‌شدن کد) همان کد را دوباره در یک سفارش جدید استفاده کند، این فرض نقض می‌شود.

نحوه‌ی شناسایی

راه‌حل

باطل‌کردن یک کد تخفیف باید اتمیک و همزمان با بررسی اعتبار آن باشد (مثلاً در یک تراکنش دیتابیسی)، نه در یک مرحله‌ی بعدی و مجزا.

تمرین عملی در آزمایشگاه‌های Business Logic ›