• صفحه اصلی
  • تامین امنیت سایت
  • آموزش جامع
    • کلوپ امنیت 1
    • کلوپ امنیت 2
    • کلوپ امنیت پیشرفته
    • دوره تست نفوذ api
    • دوره منطق سیاه : نفوذ به وب
    • دوره متخصص Idor
    • دوره متخصص pentest
    • دوره جامع osint
    • دوره امنیت وردپرس
    • دوره منتورینگ vip با بهروز منصوری
  • رایتاپخونه پلی برای کسب تجربه
  • غیر رسمی
  • بلاگ
  • ارتباط با ما
 

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • صفحه اصلی
  • تامین امنیت سایت
  • آموزش جامع
    • کلوپ امنیت 1
    • کلوپ امنیت 2
    • کلوپ امنیت پیشرفته
    • دوره تست نفوذ api
    • دوره منطق سیاه : نفوذ به وب
    • دوره متخصص Idor
    • دوره متخصص pentest
    • دوره جامع osint
    • دوره امنیت وردپرس
    • دوره منتورینگ vip با بهروز منصوری
  • رایتاپخونه پلی برای کسب تجربه
  • غیر رسمی
  • بلاگ
  • ارتباط با ما
0

هنوز هیچ محصولی خریداری نکرده اید.

وبلاگ

مرزبان بلاگ مقالات آموزشی باگ‌های پنهان دنیای باگ بانتی بخش چهارم

باگ‌های پنهان دنیای باگ بانتی بخش چهارم

مقالات آموزشی ، وبلاگ
ارسال شده توسط بهروز منصوری
1405/03/27
53 بازدید

در مقاله باگ‌های پنهان دنیای باگ بانتی بخش چهارم در مورد آسیب‌پذیری‌ Race Conditions صحبت میکنیم که از دید افراد مخفی مانده.

بیشتر اپلیکیشن‌ها یک فرض مشترک دارند:

«کاربران، عملیات را یکی‌یکی انجام می‌دهند.»

اما مهاجمان این‌طور عمل نمی‌کنند.

آسیب‌پذیری‌های Race Condition زمانی رخ می‌دهند که دو یا چند درخواست به‌صورت هم‌زمان به یک منطق برنامه ارسال شوند و برنامه نتواند آن‌ها را به شکل ایمن مدیریت کند.

  • بدون تزریق (Injection)
  • بدون ترفندهای خاص در Payload
  • فقط با استفاده از زمان‌بندی

و اگر زمان‌بندی درست باشد، نتیجه می‌تواند این موارد باشد:

  • دریافت پول رایگان
  • چندین بار دریافت بازپرداخت (Refund)
  • استفاده نامحدود از کدهای تخفیف
  • دستکاری موجودی حساب
  • سوءاستفاده از موجودی کالا

این یکی از پردرآمدترین باگ‌های منطق کسب‌وکار (Business Logic) در دنیای باگ‌بانتی است.

 

🧠 Race Condition چیست؟ (توضیح ساده)

Race Condition زمانی اتفاق می‌افتد که:

  1. برنامه ابتدا یک شرط را بررسی می‌کند.
  2. سپس عملیاتی را انجام می‌دهد.
  3. اما برای آن عملیات هیچ قفل (Lock) یا مکانیزم همگام‌سازی (Synchronization) در نظر نگرفته است.

در نتیجه، وقتی چندین درخواست هم‌زمان ارسال شوند، همه آن‌ها از مرحله بررسی عبور کرده و همگی عملیات را اجرا می‌کنند.

به بیان ساده:

«ابتدا بررسی کن، بعد به‌روزرسانی کن» ❌ بدون قفل‌گذاری = آسیب‌پذیری

 

🎯 چرا این باگ بسیار خطرناک است؟

Race Condition معمولاً منجر به موارد زیر می‌شود:

  • زیان مالی مستقیم
  • خرابی یا ناسازگاری موجودی کالا
  • سوءاستفاده از سیستم پاداش
  • افزایش غیرمجاز اعتبار یا موجودی کیف پول

و مهم‌تر از همه:

  • این رفتارها در لاگ‌ها شبیه فعالیت عادی کاربران به نظر می‌رسند.
  • بسیاری از سیستم‌های تشخیص تقلب نیز قادر به شناسایی آن‌ها نیستند.

به همین دلیل، شرکت‌ها در صورت اثبات چنین آسیب‌پذیری‌هایی معمولاً آن را در سطح P1 (بحرانی) طبقه‌بندی می‌کنند.

🐞 باگ‌های واقعی باگ‌بانتی که احتمالاً تاکنون ندیده‌اید

اگر می‌خواهید به‌جای یافتن باگ‌های تکراری که همه به دنبال آن هستند، آسیب‌پذیری‌های خاص و کمتر شناخته‌شده پیدا کنید، این مجموعه برای شماست.

📹 روند واقعی سوءاستفاده (ذهنیت PoC)

مهاجم:

  • 20 درخواست موازی ارسال می‌کند.
  • به مسیر POST /redeem-coupon

سپس سرور:

  • بررسی می‌کند که coupon_valid = true
  • اما هیچ مکانیزم قفل‌گذاری وجود ندارد.

نتیجه:

  • همه درخواست‌ها از مرحله بررسی عبور می‌کنند.
  • کوپن 20 بار استفاده می‌شود.

💥 پیامد: خسارت مالی

نکته مهم این است که مشکل در خود Endpoint نیست؛ مشکل در فرض اشتباه برنامه است.

🧪 هنگام شکار باگ، کجا باید به دنبال Race Condition بگردیم؟

Race Condition معمولاً در عملیات‌هایی دیده می‌شود که وضعیت سیستم را تغییر می‌دهند.

اهداف باارزش

  • استفاده از کدهای تخفیف
  • افزایش موجودی کیف پول
  • درخواست بازپرداخت
  • دریافت پاداش
  • فعال‌سازی دوره آزمایشی رایگان
  • توکن‌های بازیابی رمز عبور
  • تأیید ایمیل یا شماره تلفن
  • خرید موجودی کالا
  • رزرو صندلی
  • بارگذاری فایل‌هایی با محدودیت تعداد

اگر یک قابلیت:

  • موجودی را تغییر می‌دهد،
  • شمارنده‌ای را تغییر می‌دهد،
  • یا دارای محدودیت است،

 آن را از نظر Race Condition بررسی کنید.

🧪 چگونه Race Condition پیدا کنیم؟ (گام‌به‌گام)

مرحله اول: یک بررسی وضعیت (State Check) پیدا کنید

به دنبال منطق‌هایی مانند موارد زیر باشید:

  • فقط یک بار
  • سقف مجاز رسیده است
  • یک بار برای هر کاربر
  • موجودی باقی‌مانده
  • قبلاً استفاده شده است

نمونه Endpointها:

POST /redeem
POST /claim
POST /apply-coupon
POST /refund

مرحله دوم: درخواست معتبر را ذخیره کنید

با استفاده از Burp Suite عملیات را یک بار به‌صورت عادی انجام دهید.

سپس درخواست را به یکی از این ابزارها ارسال کنید:

  • Repeater
  • Turbo Intruder

این درخواست، Payload پایه شما خواهد بود.

مرحله سوم: درخواست‌های موازی ارسال کنید (مهم‌ترین بخش تست)

گزینه A: Burp Turbo Intruder (پیشنهادی)

از قالب زیر استفاده کنید:

def queueRequests(target, wordlists):
    engine = RequestEngine(
        endpoint=target.endpoint,
        concurrentConnections=20,
        requestsPerConnection=1,
        pipeline=False
    )

    for i in range(20):
        engine.queue(target.req)

def handleResponse(req, interesting):
    table.add(req)

این اسکریپت 20 درخواست را تقریباً هم‌زمان ارسال می‌کند.

گزینه B: استفاده از curl برای اهداف ساده

for i in {1..20}; do
  curl -X POST https://target.com/redeem &
done

🧰 ابزارهایی که واقعاً به آن‌ها نیاز دارید

ابزارهای اصلی

  • Burp Suite
  • Repeater
  • Turbo Intruder (ضروری)
  • curl
  • DevTools مرورگر (اختیاری)

نیازی به اسکنر یا فازر نیست.

زمان‌بندی مهم‌تر از Payload است.

🧪 Payloadها (هیچ چیز پیچیده‌ای وجود ندارد)

یک نکته مهم:

Race Condition به Payload خاصی نیاز ندارد.

شما دقیقاً همان درخواست معتبر را تکرار می‌کنید.

مثال:

POST /redeem-coupon

{
  "coupon": "WELCOME100"
}

قدرت حمله در ارسال هم‌زمان درخواست‌هاست، نه در تغییر Payload.

🚩 نشانه‌های قوی وجود آسیب‌پذیری

به دنبال موارد زیر باشید:

  • افزایش موجودی بیش از مقدار مورد انتظار
  • استفاده مجدد از کوپن پس از علامت‌گذاری به‌عنوان مصرف‌شده
  • منفی شدن موجودی کالا
  • دریافت چند پاسخ موفق
  • ترکیبی از موفقیت و خطا در درخواست‌ها
  • ناسازگاری وضعیت رابط کاربری پس از Refresh

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

🧨 چگونه این باگ را به یک P1 تبدیل کنیم؟

برای افزایش شدت آسیب‌پذیری:

  • وضعیت قبل و بعد را نشان دهید.
  • قابلیت تکرار را اثبات کنید.
  • تأثیر مالی یا منطقی را به‌وضوح نمایش دهید.

مثال:

  • موجودی قبل: 100 روپیه
  • موجودی بعد: 2000 روپیه
  • کوپن: فقط برای یک بار استفاده طراحی شده بود

این یک اثبات تأثیر واقعی روی کسب‌وکار است، نه صرفاً نمایش وجود یک باگ.

📝 نحوه گزارش این آسیب‌پذیری

عنوان

Race Condition Allows Multiple Coupon Redemptions Leading to Financial Impact

(شرایط رقابتی امکان استفاده چندباره از کوپن را فراهم کرده و منجر به خسارت مالی می‌شود)

تأثیر

مهاجم می‌تواند با ارسال چندین درخواست هم‌زمان به Endpoint مربوط به استفاده از کوپن، یک کوپن را چندین بار مصرف کند.

به دلیل نبود مکانیزم همگام‌سازی، این موضوع می‌تواند منجر به خسارت مالی مستقیم و دستکاری موجودی شود.

اهمیت موضوع

  • دور زدن محدودیت‌های تجاری
  • ایجاد خسارت مالی
  • دشوار بودن شناسایی در لاگ‌ها

🧠 چرا بیشتر شکارچیان باگ این آسیب‌پذیری را از دست می‌دهند؟

زیرا:

  • در تست‌های تک‌درخواستی قابل مشاهده نیست.
  • به صبر و حوصله نیاز دارد.
  • نیازمند تست موازی است.
  • در نگاه اول «آسیب‌پذیر» به نظر نمی‌رسد.

بیشتر شکارچیان بررسی می‌کنند چه چیزی رخ می‌دهد.

شکارچیان حرفه‌ای بررسی می‌کنند چه زمانی رخ می‌دهد.

🚀 بعد از خواندن این مطلب چه کاری باید انجام دهید؟

هر زمان با عبارت‌هایی مانند موارد زیر مواجه شدید:

  • فقط یک بار
  • محدودیت
  • مقدار باقی‌مانده
  • قبلاً استفاده شده

به Race Condition فکر کنید.

همین یک نوع آسیب‌پذیری می‌تواند شما را وارد برنامه‌های خصوصی باگ‌بانتی کند.

🐾 قسمت بعدی این مجموعه

Prototype Pollution

چگونه تنها یک کلید در JSON می‌تواند به‌صورت مخفیانه شما را به مدیر سیستم تبدیل کند و چرا هنوز بسیاری از برنامه‌ها در برابر آن آسیب‌پذیر هستند.

برچسب ها: bugbug bountyBusiness LogicpentestRace ConditionsSynchronizationآسیب پذیریآموزش هکامنیتامنیت سایتباگباگ بانتیبهروز منصوریپنتستتست نفوذهک سایت

قدیمی تر باگ‌های پنهان دنیای باگ بانتی بخش سوم
جدیدتر باگ‌های پنهان دنیای باگ بانتی بخش پنجم

محصولات فروش ویژه
  • چطور با گزارش خوب در سایت‌های داخلی کسب درآمد کنیم؟
    کسب درآمد از طریق گزارش باگ در سایت‌های داخلی
  • دوره درک عمیق آسیب‌پذیری
    درک عمیق آسیب‌پذیری
  • مینی دوره مهندسی اجتماعی
    مینی دوره مهندسی اجتماعی
  • گزارش نویسی حرفه ای در باگ هانتینگ
    گزارش نویسی حرفه‌ای در Bug Hunting
دسته‌ها
  • رایتاپ
  • غیر رسمی
  • مقالات آموزشی
  • وبلاگ
  • ویدیوهای آموزشی
درباره ما

هدف از راه‌اندازی این سایت تلاش در جهت ورود شما به بازار کار است.افراد زیادی را میشناسیم که مشغول کارهای کارمندی هستند، شاید حتی پول نسبتا خوبی هم به دست میاورند ولی از کارشان لذت نمیبرند.

هدف ما اینجا این است که شما از کاری که علاقه‌ دارید و از انجام دادنش لذت می‌برید به صورت قانونی پول در بیاورید و نکته مهم اینجاست که حوزه هک و امنیت یک حوزه پولساز است به شرط این که راه درست را انتخاب کنید و از مسیر درست به دنبال نتیجه گرفتن باشید.

دسترسی سریع
  • دوره منتورینگ vip بهروز منصوری
  • کلوپ امنیت 1
  • کلوپ امنیت 2
  • کلوپ امنیت پیشرفته
  • دوره تست نفوذ api
  • دوره جامع اوسینت
  • دوره امنیت وردپرس
  • دوره متخصص pentest
  • رایتاپخونه
  • ارتباط با ما
  • تماس: 09126216410
  • ایمیل: mr.mansoori@yahoo.com

تمامی حقوق برای مرزبان محفوظ می باشد.

طراحی توسط مرزبان

فرم درخواست مشاوره

جستجو

جستجو با زدن Enter و بستن با زدن ESC