رفتن به محتوا

شرایط رقابتی و قاچاق درخواست ​

شرایط رقابتی / قاچاق درخواست، دو ابزار تخصصی برای حملات HTTP حساس به زمان‌بندی و حملات در سطح پروتکل فراهم می‌کند.

شرایط رقابتی ​

زبانهٔ شرایط رقابتی چندین نسخه از یک درخواست را هم‌زمان به یک نقطهٔ پایانی می‌فرستد و امکان مقایسهٔ پاسخ‌ها و زمان‌بندی اجرای موازی آن‌ها را فراهم می‌کند.

زمان استفاده ​

  • TOCTOU (زمان بررسی/زمان استفاده): آزمایش کنید که آیا درخواست‌های هم‌زمان می‌توانند بین یک بررسی و عملیات تغییر وضعیت فاصله بیندازند.
  • دست‌کاری حساب: تغییر موجودی، استفاده از کوپن یا عملیات دارای سقف را هم‌زمان ارسال کنید تا خرج‌کردن دوباره یا استفاده از کوپن بیش از حد مجاز را آزمایش کنید.
  • دورزدن محدودیت رأی یا نرخ: بررسی کنید که آیا محدودیت‌های هر کاربر به‌صورت اتمی اعمال می‌شوند.

اجرای آزمون رقابت ​

  1. درخواست هدف را در زبانهٔ شرایط رقابتی بسازید یا به آن بفرستید.
  2. مقدار هم‌زمانی را تنظیم کنید؛ یعنی تعداد نسخه‌های موازی که باید ارسال شوند.
  3. روی ارسال رقابتی کلیک کنید. همهٔ نسخه‌ها تا حد امکان نزدیک به یک زمان ارسال می‌شوند.
  4. جدول پاسخ‌ها را مرور کنید: کد وضعیت، بدنه و زمان سپری‌شده برای هر نسخه.
  5. تفاوت بین پاسخ‌ها (کدهای وضعیت متفاوت، بدنه‌های پاسخ متفاوت یا موفقیت غیرمنتظره در نسخه‌های 2+) نشان‌دهندهٔ یک پنجرهٔ رقابت است.

رقابت تک‌بسته‌ای HTTP/2 ​

وقتی هدف از HTTP/2 پشتیبانی می‌کند، حالت HTTP/2 را فعال کنید. HTTP/2 همهٔ درخواست‌های موازی را روی یک اتصال چندگانه‌سازی می‌کند؛ این کار نوسان تأخیر شبکه را حذف می‌کند و رسیدن هم‌زمان درخواست‌ها به سرور را قابل‌اعتمادتر می‌سازد.

قاچاق درخواست HTTP ​

زبانهٔ قاچاق درخواست، نحوهٔ پردازش سرآیندهای مبهم Content-Length و Transfer-Encoding توسط سرور را آزمایش می‌کند تا ناهماهنگی فرانت‌اند/بک‌اند را تشخیص دهد.

پیش‌زمینه ​

وقتی پراکسی معکوس و سرور بک‌اند دربارهٔ محل پایان یک درخواست و آغاز درخواست بعدی اختلاف داشته باشند، یک پیشوند قاچاق‌شده از درخواست A می‌تواند به ابتدای درخواست B افزوده شود. اثر آن از مسموم‌سازی کش تا دورزدن احراز هویت و تزریق درخواست دلخواه متغیر است.

انواع ناهماهنگی ​

نوعتوضیح
CL.TEفرانت‌اند از Content-Length و بک‌اند از Transfer-Encoding استفاده می‌کند
TE.CLفرانت‌اند از Transfer-Encoding و بک‌اند از Content-Length استفاده می‌کند
TE.TEهر دو از Transfer-Encoding استفاده می‌کنند، اما به یک سرآیند مبهم‌سازی‌شده واکنش متفاوتی نشان می‌دهند

اجرای کاوش قاچاق درخواست ​

  1. نقطهٔ پایانی هدف را در زبانهٔ قاچاق درخواست انتخاب کنید.
  2. نوع ناهماهنگی مورد آزمون را انتخاب کنید.
  3. روی اجرای آزمون قاچاق درخواست کلیک کنید. ابزار درخواست دست‌کاری‌شده را ارسال می‌کند و پاسخ را اندازه می‌گیرد.
  4. پایان مهلت یا پاسخ غیرمنتظره به درخواست دوم در توالی، نشان‌دهندهٔ ناهماهنگی احتمالی است.
  5. پیش از ایجاد یافته، به‌صورت دستی تأیید کنید؛ وقتی شرایط شبکه باعث پایان مهلت نامرتبط با کاوش می‌شوند، مثبت کاذب رخ می‌دهد.

نرم‌افزار اختصاصی. تمامی حقوق محفوظ است.