BUG BOUNTY

آموزش باگ بانتی: مسیر واقعی یادگیری امنیت وب

علیرضا کیا
علیرضا کیا
کارشناس وب و موبایلبازبینی: ۲۵ مرداد ۱۴۰۵
۱۴ اردیبهشت ۱۴۰۵ ۱۳ دقیقه مطالعه

بیشتر محتوایی که با عبارت «آموزش باگ بانتی» پیدا می‌شود دو مشکل جدی دارد: یا زمان‌بندی غیرواقعی وعده می‌دهد («در ۳۰ روز درآمدزا شوید»)، یا مرز قانونی آزمون را مبهم می‌گذارد و در عمل خواننده را به سمت دسترسی غیرمجاز هدایت می‌کند. این راهنما هیچ‌کدام را انجام نمی‌دهد. یادگیری باگ بانتی یعنی یادگیری امنیت برنامه‌های وب — یک مهارت مهندسی که ماه‌ها تمرین ساختارمند می‌خواهد — و نخستین درس آن این است که فقط سه چیز را مجازید آزمون کنید: دارایی خودتان، آزمایشگاهی که عمداً آسیب‌پذیر ساخته شده، و برنامه‌ای که اسکوپ منتشرشده‌اش به شما اجازه داده است. هرچیز دیگری، مهارت نیست؛ جرم است.

در یک نگاه

  • مرز قانونی مطلق است: دارایی خودتان، آزمایشگاه عمداً آسیب‌پذیر، یا برنامه‌ای با اسکوپ منتشرشده. سایت تصادفی «برای تمرین» گزینه نیست.
  • ترتیب درست: HTTP → مدل امنیتی مرورگر → تسلط بر پروکسی → هر بار یک کلاس آسیب‌پذیری، به‌صورت عمیق → خواندن گزارش‌ها → شناسایی → گزارش‌نویسی.
  • نسخه‌ی Community از Burp اسکنر و Collaborator ندارد؛ همین محدودیت است که مهارت دستی می‌سازد.
  • کیفیت گزارش‌نویسی بیشتر از نرخ کشف، درآمد شما را تعیین می‌کند.
  • زمان‌بندی واقع‌بینانه تا نخستین یافته‌ی معتبر، ماه است نه هفته — و این طبیعی است.

پیش از هر تمرین: سه محیطی که مجازید آزمون کنید

این بخش را نمی‌توان از مسیر یادگیری حذف کرد، چون تنها چیزی است که یک پژوهشگر امنیتی را از یک متهم جدا می‌کند. شما فقط در سه وضعیت مجاز به آزمون هستید:

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

سه چیزی که خیلی‌ها اشتباهاً «تمرین» می‌نامند و در واقع دسترسی غیرمجازند: اسکن آسیب‌پذیری روی سایت تصادفی، جست‌وجوی زیردامنه و اندپوینت روی سازمانی که برنامه‌ای ندارد، و آزمون یک آسیب‌پذیری روی سایت شرکتی که خودتان کارمندش هستید بدون مجوز کتبی. حتی یک درخواست ساده هم اگر بدون مجوز و با قصد یافتن ضعف امنیتی ارسال شود، می‌تواند مصداق دسترسی غیرمجاز باشد؛ بر پایه‌ی قانون جرائم رایانه‌ای، این عمل جرم است و «قصد آموزش» عذر پذیرفته‌ای نیست.

باور غلط رایج

«اگر فقط اسکن کنم و سوءاستفاده نکنم مشکلی نیست.» این تفکیک در قانون وجود ندارد و از منظر عملی هم اشتباه است: اسکن خودکار ترافیک قابل تشخیصی تولید می‌کند، در لاگ سازمان به‌عنوان حمله ثبت می‌شود و مسیر شما را در همان ابتدا می‌بندد. مفهوم مجوز در باگ بانتی چیست به‌تفصیل توضیح داده شده است.

زمین‌های تمرین قانونی که باید استفاده کنید

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

  • PortSwigger Web Security Academy — رایگان، ساختارمند و به‌تفکیک موضوع، با آزمایشگاه‌های تعاملی برای هر کلاس آسیب‌پذیری. این جامع‌ترین منبع رایگان موجود برای امنیت وب است و مبنای بخش بزرگی از برنامه‌ی درسی زیر.
  • OWASP Juice Shop — یک برنامه‌ی وب مدرن (جاوااسکریپت، API محور) که عمداً آسیب‌پذیر ساخته شده؛ برای تمرین در بستری شبیه اپلیکیشن‌های امروزی مناسب است.
  • DVWA — کلاسیک، ساده و PHP محور؛ برای درک ابتدایی مکانیزم آسیب‌پذیری‌ها با سطوح امنیتی قابل تنظیم خوب است، اما معماری‌اش قدیمی است و نباید تنها منبع شما باشد.
  • برنامه‌های آسیب‌پذیر میزبانی‌شده روی سیستم خودتان — بالاترین ارزش را دارند. در داکر بالا بیاورید تا هم شبکه‌ی خارج درگیر نشود و هم بتوانید کد را بخوانید و بین آسیب‌پذیری و خط کد ارتباط برقرار کنید.

پیشنهاد عملی: یک ماشین مجازی یا محیط کالی لینوکس بسازید، آزمایشگاه‌ها را داخل شبکه‌ی داخلی همان محیط اجرا کنید، و عادت کنید هر یافته را با خواندن کد منبعِ آسیب‌پذیر تأیید کنید — این تنها راهی است که به بازبینی کد هم می‌رسید.

سنگ‌بنا: HTTP و مدل امنیتی مرورگر

هیچ ابزاری جای این دو موضوع را نمی‌گیرد. اکثر کسانی که در باگ بانتی متوقف می‌شوند، از این مرحله عبور نکرده‌اند و فقط پیلودها را حفظ کرده‌اند.

HTTP

باید بتوانید یک درخواست را از حفظ بنویسید و بخوانید: متدها و تفاوت معنایی آن‌ها، کدهای وضعیت، هدرهای درخواست و پاسخ، انواع Content-Type و اینکه سرور هر کدام را چگونه تجزیه می‌کند، کدگذاری URL و چندبار کدگذاری، تفاوت مسیر و پارامتر و بدنه، و رفتار تغییر مسیرها. HTTP/2 و مالتی‌پلکسینگ آن را هم بشناسید؛ همین ویژگی است که حملات شرایط رقابتی مدرن را ممکن می‌کند.

مدل امنیتی مرورگر

سه ستون دارد و هر سه را باید در سطح رفتار بشناسید، نه در سطح تعریف:

  • سیاست هم‌مبدأ (SOP): چه چیزی «مبدأ» را می‌سازد و چه چیزی مبدأ را تغییر می‌دهد.
  • کوکی‌ها: ویژگی‌های HttpOnly، Secure و SameSite. یک نکته‌ی مهم که محتوای قدیمی غلط می‌گوید: کروم برای کوکی بدون ویژگی SameSite مقدار Lax را پیش‌فرض اعمال می‌کند، اما فایرفاکس این پیش‌فرض را اعمال نمی‌کند و باگ مربوطه در موزیلا با وضعیت WONTFIX بسته شده است. بنابراین CSRF در ۲۰۲۶ هنوز زنده است و توکن سمت سرور همچنان الزامی است.
  • CORS: و این نکته‌ی کلیدی که CORS سیاست هم‌مبدأ را شل می‌کند، نه اینکه امنیت اضافه کند.

در همین مرحله TLS و CSP را در سطح مفهومی اضافه کنید. هدف این مرحله فقط یک چیز است: وقتی رفتار عجیبی می‌بینید، بدانید کدام مکانیزم قاعدتاً باید جلویش را می‌گرفت.

تسلط بر پروکسی: چرا نسخه‌ی رایگان به نفع شماست

ابزار اصلی شما یک پروکسی رهگیر است. Burp Suite استاندارد عملی این حوزه است و Caido جایگزین سبک‌تر و مدرن‌تری برای گردش‌کار دستی است (که هنوز پیش از نسخه‌ی ۱٫۰ است و اسکنر خودکار ندارد).

نسخه‌ی Community از Burp این‌ها را ندارد: Burp Scanner (اسکنر خودکار)، Burp Collaborator (تشخیص خارج از باند برای SSRF کور و XXE کور)، ذخیره‌ی پروژه، جست‌وجو در کل پروژه، و Intruder کامل — نسخه‌ی رایگان فقط «Intruder دمو» با محدودیت شدید نرخ دارد. برای فازینگ واقعی از ffuf استفاده کنید که سریع‌تر هم هست.

و یک نکته‌ی مثبت که محتوای فارسی معمولاً غلط می‌گوید: DOM Invader در نسخه‌ی Community هم موجود است، نه فقط Professional. این ابزار برای کشف XSS مبنی بر DOM، آزمون postMessage و یافتن آلودگی پروتوتایپ سمت کلاینت، تفاوت واقعی ایجاد می‌کند و رایگان است.

گردش‌کار حرفه‌ای را در این ترتیب تمرین کنید: Proxy برای دیدن، Repeater برای تکرار و تغییر تک‌درخواست، Decoder و Comparer برای تحلیل، و ابزار خارجی برای فازینگ. کنسول و بخش Sources مرورگر را هم جدی بگیرید؛ خواندن جاوااسکریپت باندل‌شده برای پیدا کردن اندپوینت‌های پنهان، یکی از پربازده‌ترین مهارت‌های این حوزه است.

محدودیت ابزار را بشناسید

اسکنرها یک کلاس از باگ‌ها را خوب پیدا می‌کنند و یک کلاس را اصلاً پیدا نمی‌کنند. هیچ اسکنری IDOR، نقص منطق کسب‌وکار یا شرایط رقابتی چندمرحله‌ای را قابل اتکا پیدا نمی‌کند، چون ابزار نمی‌داند «چه چیزی باید مجاز باشد». همین شکاف، محل درآمد و محل ارزش شماست.

نقشه راه باگ بانتی: هر بار یک کلاس آسیب‌پذیری، به‌صورت عمیق

خطای رایج تازه‌واردان، مطالعه‌ی سطحی بیست موضوع به‌طور موازی است. روش مؤثر، تمرکز بر یک کلاس تا رسیدن به سطح «می‌توانم آن را در کد تشخیص بدهم و در آزمون به‌طور نظام‌مند شکارش کنم» است. ترتیب پیشنهادی زیر بر پایه‌ی نسبت اثر به سختی یادگیری چیده شده و با رده‌بندی ریسک OWASP Top 10:2025 هم‌راستاست.

مرحلهموضوعچرا این ترتیب
۱کنترل دسترسی شکسته و IDORرتبه‌ی یک OWASP، بی‌نیاز از پیلود پیچیده، و ابزارها در آن ضعیف‌اند؛ بیشترین بازده برای یک انسانِ دقیق.
۲XSS در سه نوع بازتابی، ذخیره‌شده و DOMپرحجم‌ترین CWE در داده‌ی جهانی؛ درک زمینه‌ی خروجی (HTML، ویژگی، JS، URL) پایه‌ی همه‌چیز است.
۳تزریق SQL و تزریق دستورمفهوم «جداسازی داده از دستور» را تثبیت می‌کند؛ انواع کور و مرتبه‌دوم را هم بیاموزید.
۴CSRF و مدیریت نشستوابسته به مدل امنیتی مرورگر؛ محل بیشترین اطلاعات غلط در محتوای فارسی.
۵SSRF و تغییر مسیر بازدر OWASP 2025، SSRF داخل دسته‌ی A01 ادغام شده؛ تغییر مسیر باز به‌تنهایی کم‌ارزش اما به‌عنوان حلقه‌ی زنجیره پرارزش است.
۶احراز هویت، JWT و OAuthجریان‌های چندمرحله‌ای؛ نیازمند دقت و مطالعه‌ی مستندات استاندارد.
۷SSTI، دی‌سریالایز ناامن، XXEمسیرهای رسیدن به اجرای کد؛ بازده کمتر اما شدت بالاتر.
۸شرایط رقابتی و منطق کسب‌وکارکم‌رقابت‌ترین و کم‌تکرارترین حوزه؛ نیازمند بلوغ فنی و درک فرایند کسب‌وکار.

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

خواندن گزارش‌های منتشرشده و بازسازی آن‌ها

پس از تسلط بر چند کلاس اول، پربازده‌ترین فعالیت یادگیری این است: گزارش‌های افشاشده‌ی برنامه‌های باگ بانتی و نوشته‌های پژوهشی را بخوانید و در آزمایشگاه محلی بازسازی کنید. توجه کنید که خواندن گزارش، مجوز تکرار همان آزمون روی همان هدف را به شما نمی‌دهد؛ بازسازی باید روی محیط خودتان انجام شود.

هنگام خواندن، به‌جای حفظ کردن پیلود، این چهار سؤال را پاسخ دهید:

  1. پژوهشگر چرا به این نقطه مشکوک شد؟ چه سیگنالی او را به آن اندپوینت کشاند؟
  2. چه فرضی از سمت توسعه‌دهنده اشتباه بود؟ (مثلاً «این شناسه قابل حدس نیست» یا «این بررسی در سمت کلاینت کافی است».)
  3. اثر واقعی چه بود و چگونه بیان شد؟
  4. وصله‌ی درست چه بود، و چه وصله‌ای ناکافی می‌بود؟

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

شناسایی: چرا این مرحله در آخر می‌آید

در بسیاری از دوره‌های فارسی، شناسایی درس اول است. این ترتیب غلط است: اگر ندانید با یک اندپوینت پیداشده چه کار کنید، داشتن هزار زیردامنه فقط تولید نوفه است.

وقتی به این مرحله می‌رسید، ابزارهای امروزی این‌ها هستند: subfinder برای شمارش غیرفعال زیردامنه، httpx برای بررسی زنده‌بودن و اثرانگشت فناوری، katana برای خزش، nuclei برای تطبیق قالب‌های شناخته‌شده، و ffuf برای کشف محتوا. برای استخراج URLهای تاریخی از آرشیوها، ابزار زنده و به‌روز gau است؛ waybackurls عملاً بی‌پشتیبان مانده و آخرین نسخه‌اش به سال ۲۰۲۲ برمی‌گردد، پس آموزش‌هایی که آن را استاندارد جاری معرفی می‌کنند نرم‌افزار رهاشده پیشنهاد می‌دهند.

دو قید مهم: نخست اینکه اجرای این ابزارها فقط داخل اسکوپ مجاز معنا دارد و شمارش زیردامنه‌ی سازمانی که برنامه ندارد، شناسایی مجاز نیست. دوم اینکه nuclei یک تطبیق‌دهنده‌ی امضا است، نه اسکنر منطق‌آگاه: باگ‌های کنترل دسترسی و منطق کسب‌وکار را پیدا نمی‌کند و اجرای کل مجموعه‌ی قالب‌ها روی هدف عملیاتی، پرسروصدا و کم‌بازده است. مفاهیم این مرحله را در شناسایی و OSINT جمع کرده‌ایم.

مهارتی که بیشتر از نرخ کشف، درآمد را تعیین می‌کند

این جمله را جدی بگیرید: دو پژوهشگر با یافته‌های یکسان می‌توانند نتایج کاملاً متفاوتی بگیرند، و متغیر تعیین‌کننده گزارش است. تیم تریاژ چیزی جز متن شما ندارد؛ اگر بازتولید یافته نیازمند حدس‌زدن باشد، گزارش به ته صف می‌رود و احتمال بسته‌شدنش با وضعیت «قابل بازتولید نیست» بالا می‌رود.

سه چیز را از ابتدای یادگیری تمرین کنید، نه بعد از اولین یافته:

  • مراحل بازتولید عددگذاری‌شده و قطعی — با نقش کاربر، مقدار دقیق پارامتر و نتیجه‌ی مورد انتظار در هر گام.
  • بیان اثر به زبان کسب‌وکار — «هر کاربر احراز هویت‌شده می‌تواند فاکتور سایر کاربران را بخواند» به‌جای «IDOR پیدا کردم».
  • شدت با بردار کامل — و ذکر اینکه از CVSS نسخه‌ی ۴٫۰ استفاده کرده‌اید یا ۳٫۱.

عادت خوب: از همان آزمایشگاه‌ها برای تمرین گزارش‌نویسی استفاده کنید. برای هر لبی که حل می‌کنید یک گزارش کامل بنویسید، انگار مخاطبش یک تریاژر است. این کار همان مهارتی را می‌سازد که در گزارش تست نفوذ حرفه‌ای هم لازم است — و مسیر شما را به سمت شغل امنیتی باز می‌کند.

یادگیری باگ بانتی چقدر طول می‌کشد؟ دام «۳۰ روز تا درآمد»

هیچ عدد قابل اتکایی برای «چند ماه تا نخستین یافته» وجود ندارد، چون به پیش‌زمینه‌ی فنی، ساعت تمرین مؤثر و انتخاب برنامه بستگی دارد. اما یک چیز را با اطمینان می‌توان گفت: مقیاس زمانی این مسیر ماه است، نه هفته، و فاصله‌ی میان «آزمایشگاه‌ها را حل می‌کنم» تا «روی یک برنامه‌ی واقعی یافته‌ی معتبر و غیرتکراری دارم» فاصله‌ی بزرگی است. علت ساختاری است: در یک برنامه‌ی عمومی، آسیب‌پذیری‌های سطحی توسط ده‌ها نفر به‌طور موازی جست‌وجو می‌شوند و آنچه باقی می‌ماند نیازمند درک اختصاصی برنامه است.

باور غلط رایج

«با این دوره در ۳۰ روز شکارچی باگ شوید و درآمد ارزی بگیرید.» چنین وعده‌ای با اقتصاد این حوزه ناسازگار است. محتوایی که این وعده را می‌دهد معمولاً سه کار می‌کند: مهارت را به فهرستی از ابزارها تقلیل می‌دهد، مرحله‌ی مدل امنیتی مرورگر را حذف می‌کند، و مرز مجوز را مبهم می‌گذارد. تحلیل واقع‌بینانه‌ی اقتصاد این کار در درآمد باگ بانتی آمده است.

چیزهایی که لازم ندارید

  • حفظ کردن نام صد ابزار. پنج ابزار را عمیق بشناسید.
  • وسواس روی توزیع لینوکس. کالی مجموعه‌ای از ابزارهاست، نه مهارت.
  • چارچوب‌های اکسپلویت میزبان‌محور. Metasploit ابزار سوءاستفاده از سرویس‌ها و مرحله‌ی پس از نفوذ است و در آزمون برنامه‌ی وب نقش حاشیه‌ای دارد؛ فهرست‌هایی که آن را کنار Burp به‌عنوان ابزار اصلی وب معرفی می‌کنند، گردش‌کار را غلط نشان می‌دهند.

و اگر هدف نهایی شما شغل است نه سرگرمی، این مسیر را با یادگیری ساختارمند ترکیب کنید: راهنمای تست نفوذ وب برای دیدن تصویر متدولوژیک کار، فهرست برنامه‌های داخلی در صفحه‌ی باگ‌بانتی ایران برای انتخاب نخستین هدف مجاز، و دوره‌ی توسعه‌ی امن سازمانی یا دوره‌های آموزشی برای مسیر منظم‌تر.

پرسش‌های متداول

برای یادگیری باگ بانتی از کجا شروع کنم؟

از HTTP و مدل امنیتی مرورگر، نه از ابزارها. سپس یک پروکسی رهگیر را خوب یاد بگیرید و بعد کلاس‌های آسیب‌پذیری را یکی‌یکی و به‌صورت عمیق کار کنید. تمرین را در آزمایشگاه‌های مجاز مثل Web Security Academy و OWASP Juice Shop انجام دهید، نه روی سایت‌های واقعی.

یادگیری باگ بانتی چقدر طول می‌کشد؟

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

آیا می‌توانم برای تمرین روی سایت‌های واقعی تست کنم؟

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

برای باگ بانتی به نسخه‌ی پول Burp نیاز دارم؟

در مرحله‌ی یادگیری نه. نسخه‌ی Community پروکسی، Repeater و DOM Invader را دارد و همین برای ساختن مهارت دستی کافی است. اسکنر، Collaborator و Intruder کامل در نسخه‌ی Professional هستند؛ تا وقتی مهارت دستی ندارید، اسکنر فقط فهرستی از یافته‌های تکراری تولید می‌کند. برای فازینگ از ffuf رایگان استفاده کنید.

برای باگ بانتی باید برنامه‌نویسی بدانم؟

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

کدام آسیب‌پذیری را اول یاد بگیرم؟

کنترل دسترسی شکسته و IDOR. رتبه‌ی یک OWASP Top 10:2025 است، پیلود پیچیده نمی‌خواهد، و ابزارهای خودکار در کشف آن ضعیف‌اند — یعنی رقابت ابزاری کمتری دارد. XSS را به‌عنوان دومین موضوع کار کنید.

علیرضا کیا
WRITTEN BY

علیرضا کیا

کارشناس وب و موبایل

متخصص تست نفوذ وب و اندروید با سابقه‌ی مدیریت تیم نفوذ در داتین. مهندسی معکوس اپ‌ها و کشف ذخیره‌سازی ناامن، تخصص اوست.

BUG BOUNTY

باگ بانتی چیست؟ توضیح کامل و ساده

ادامه مطلب ←
BUG BOUNTY

رایت‌آپ باگ بانتی: نمونه گزارش‌ها و روش نوشتن

ادامه مطلب ←
BUG BOUNTY

پلتفرم‌های باگ بانتی: ایرانی و خارجی

ادامه مطلب ←