نقشه راه باگ بانتی برای باگ بانتی هانترهای تازه کار

نقشه راه باگ بانتی برای باگ بانتی هانترهای تازه کار

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

 

bugBounty Roadmap - نقشه راه باگ بانتی
نقشه راه باگ بانتی برای هانترهای تازه کار (تصویر)

کارهایی که باید قبل از شروع به کار در شکار جایزه آسیب پذیری انجام دهید

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

کاری که درابتدا باید یاد بگیرید “برنامه نویسی” است.

  1. حتما و باید جاوا اسکریپ را بلد باشید.
  1. JavaScript Complete Documenation
  2. JavaScript ES6(درصورتیکه با سینتکس JS ES6 آشنا نیستید)
  3. Mastering JavaScript(یک پرسشنامه که روی میزان اطلاعات شما در این زمینه متمرکز شده است.)

2. در یک زبان برنامه نویسی مهارت خودتان را بالاتر ببرید.

  • اینکه دراین مرحله چه زبان برنامه نویسی ای را انتخاب می کنید، به راحتی شما با آن زبان برنامه نویسی و همچنین پشتیبانی آن زبان از درخواست های HTTP و داشتن کتابخانه های فرایند رشته ای خوب آن بستگی دارد.
  • من برای کارهای دم دستی و راحت از زبان Python و برای ساختن ابزارها و اسکریپت های سفارشی از زبان go استفاده می‌کنم.
  • چقدر مهارت نیاز داریم؟ هدف نهایی ما از بلد بودن و ماهر بودن در یک زبان برنامه نویسی اتوماسیون است. یعنی به جای اینکه یک عمل را بارها و بارها تکرار کنیم و نتیجه را به صورت دستی ثبت کنیم، بااستفاده از این مهارت می‌توانید با نوشتن یک اسکریپت و ذخیره کردن نتایج به صورت خودکار این‌کار را انجام دهید و حتی از نتایج این فرایند در پروسه های بعدی نیز استفاده کنید. اسکریپت شما کافیست کار شما را راه بیندازد و نه چیز دیگر.
  • آیا داشتن مهارت در یک زبان کافیست؟ بله، کافیست. در عمل، شاید نیاز داشته باشید تا زبان های جدید بیشتری یادبگیرید، اما نیاز نیست همه آن ها را کاملا یادبگیرید و به‌خاطر بسپارید. صرفا توانایی خواندن کدهایی به زبان های مختلف برای درک جریان داده و چگونگی فرایند داده برای شما کافیست. برای مثال، برای تشخیص باگ‌ها باید خواندن زبان PHP را بلد باشید، اما هیچ گاه برای نوشتن یک تسک اتوماسیون از زبان PHP استفاده نخواهید کرد.
  1. یادگیری عبارات با قاعده (Regular Expression)
  • از عبارات باقاعده سرسری رد نشوید، سعی کنید از این عبارات در کدها و اسکریپت هایی که می نویسید استفاده کنید، چرا که با اینکار اسکریپت های بهتری میتوانید بنویسید. بهترین راه برای یادگیری و درک عبارات باقاعده استفاده از آن در کدنویسی و اسکریپت نویسی است.

کامیونیتی امنیتی باگ بانتی و پیدا کردن یک مشاور و منتور خوب

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

اگر احساس می‌کنید هنوز هم سردرگم هستید و به راهنمایی بیشتری نیاز دارید، در یوتوب به دنبال افرادیکه آموزشهای رایگان، نکات کاربردی و نمایش چگونگی انجام باگ بانتی می توانید بگردید. یک لیست از این افراد برای خودتان تهیه کنید. اگر دوره آموزشی باگ بانتی از سمت این افراد پیشنهاد شد، در اینترنت جستجو کنید. چنین دوره های آموزشی را از یودمی می‌توانید تهیه کنید (اگر دوره های آموزشی را از یودمی می‌خرید، از قسمت Q&A دوره آموزشی برای پرسیدن سوال و دریافت نکات کاربردی باگ بانتی استفاده کنید). استفاده از دوره های آموزشی یک روش یادگیری غیرمستقیم از منتور است.

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

چگونه یک برنامه باگ بانتی را انتخاب کنیم

در ادامه جزئیاتی بیان شده است که به شما یاد می‌دهد چگونه برای اولین بار یک برنامه باگ بانتی را از پلتفرم هایی چون HackerOne، Bugcrowd، Intigrity و… انتخاب کنید.

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

لیست برنامه های باگ بانتی رایگان

  • Bugcrowd (حتما قبل از اینکه کارتان را شروع کنید، دستورالعمل ها را به خوبی مطالعه کنید)
  • HackerOne ( حتما قبل از اینکه کارتان را شروع کنید، دستورالعمل ها را به خوبی مطالعه کنید)
  • Integrity(حتما قبل از اینکه کارتان را شروع کنید، دستورالعمل ها را به خوبی مطالعه کنید)

 

سایر برنامه های باگ بانتی

  • عالاوه بر برنامه های عمومی، برنامه های باگ بانتی خصوصی هم وجود دارند.
دعوتنامه برنامه خصوصی هکروان
Hacker101 CTF — دعوتنامه برنامه باگ بانتی خصوصی
  • همچنین برخی از وب سایت ها به صورت داخلی برنامه باگ بانتی خودشان را برگزار می‌کنند. مثلا گوگل برنامه باگ بانتی خودش را دارد___ GoogleVRP

 

باگ بانتی هایی که به عنوان تازه کار باید به آن‌ها سربزنید

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

  1. وب‌سایت های بیزینس به بیزینس (چیزهای خوبی برای حمله دراین وب سایت ها می توانید پیدا کنید ). بیزینسی که به یک بیزینس دیگر کمک می‌کند تا رشد کند، مثل اپلیکیشن HRM، اپلیکیشن مدیریت دارایی و … .
  2. برنامه ای با اسکوپ غیرقابل پوشش (برنامه ای را انتخاب کنید که اسکوپ گسترده و منسجمی داشته باشد، هرچقدر تعداد صفحات یک سایت بیشتر باشد، شانس بیشتری برای بدست آوردن پاداش خواهید داشت). سازمان هایی که درکل اسکوپ های بی درو پیکری دارند، روزانه قطعه کدهای جدیدی به اپلیکیشن خود اضافه می‌کنند. ازسوی دیگر، این برنامه های باگ بانتی زیردامنه‌های زیادی دارند که به افراد تازه کار این امکان را می دهد تا دانش روش شناسی خودشان را ارتقاء داده و همچنین با اتوماسیون آشنا شده و بکار بگیرند، چرا که با دستی انجام دادن برخی کارها ممکن است تا ابد کار را نتوانید تمام کنید. برنامه هایی مثل “وزارت دفاع ایالات متحده”، “IBM”، “Facebook”(برنامه مجزا)، “Google” (برنامه مجزا).
  3. کابران چندسطحی (اگر وب سایتی سطوح مختلفی از کاربران مانند سطح مدیریت، سطح کارمندی، سطح مهمان را پوشش دهد، بهترین سطح از حمله را برای شما فراهم می‌آورد ).

 

برنام های باگ بانتی که به عنوان تازه کار باید از آن‌ها اجتناب کنید

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

  1. وب سایت‌های روزنامه ای و خبری (تعداد صفحات زیادی که سطوح مناسبی برای حمله فراهم نمی‌آورند.)
  2. وب سایت های تجارت الکترونیکی (باتوجه به جریان کاری پیچیده، یک تازه کار بایستی از چنین وب سایت های دروی گزیند، اما اگر مشکلی بااین موضوع ندارید، در انتخاب این سایت ها تعلل نکنید). توجه داشته باشید که تجارت الکترونیکی شامل بانک ها نمی‌شود. برای مثال، خرید و فروش آنلاین، خرید اشیا و …
  3. بانک ها (درکل درمقایسه با اهداف رایج، بانک ها اهداف سختی هستند، اما اگر با آن مشکلی ندارید می توانید امتحان کنید). برای مثال، خرید و فروش آنلاین، خرید اشیا و …
  4. وب سایت های بلاک چین ( جریان کاری این سایت با جریان کاری سایت های معمولی بسیار متفاوت است، برای کار روی چنین وب سایتی باید دانش کافی از نحوه کار بلاک چین داشته باشید، که درصورت تازه کار بودن بهتر است از این وب سایت ها دوری کنید).
  5. اپلیکیشن های موبایلی (اپلیکشن هایی مثلا با پسوند .apk یا سایر اپلیکیشن های موبایلی که متفاوت تر از وب سایت های معمولی هستند، برای کار با بانتی های مربوط به اپلیکیشن موبایل بایستی ابتدا اطلاعات بیشتری درباره نحوه کار اپلیکیشن های موبایل و همچنین نحوه کشف آسیب‌پذیری در این اپلیکیشن ها را بشناسید، پس بهتر است اگر تازه کار هستید از این اپلیکیشن ها دوری کنید.)
  6. اپلیکیشن های دسکتاپ ( درست مانند مورد بالا، اپلیکیشن هایی با فرمت .exe هستند که آسیب‌پذیری های مخصوص به خودشان را دارند، پس تا اگر تازه کار هستیداز این اپلیکیشن ها دوری گزینید).
  7. تجهیزات IoT (درست مثل موارد بالا)

چگونه اولین پاداش باگ تان را شکار کنید

نه تنها انتخاب یک برنامه باگ بانتی مناسب مهم است، بلکه نحوه دسترسی شما به آن برنامه نیز به همان اندازه مهم است، در ادامه به توضیح جزئیاتی که برای شما در شکار اولین پاداش تان می تواند مفید باشد.

  • اولین پیشنهاد من به شما این است که تاجاییکه می توانید با حملات آشنا شوید. عملا این به این معنی است که شما بایستی تست موردی تمام حملاتی که یاد گرفته اید را بلد باشید تا روی وب سایت هایی که می خواهید مورد آزمون قرار دهید عملی کنید. هرچقدر دراین زمینه دانش بیشتری داشته باشید، باگ ها و رفتارهای ناهنجار بیشتری را می توانید تشخیص دهید. از ابزارهای متن باز می توانید استفاده کنید، ولیکن در هر مورد باید بدانید که چه داده ای توسط این ابزار ارسال شده است. اگر موردی وجود دارد که هنوز تست نکرده‌اید، هرچه زودتر راهی برای تست و یادگرفتن آن پیدا کنید.
  • تا جاییکه می‌توانید مسیرها، نقاط پایانی، دامنه (داخل اسکوپ) بیشتری کشف کنید. اینکار باعث می‌شود تا سطح حمله بزرگ و گسترده ای داشته باشید که شانس کشف باگ را برای شما بالا می‌برد.
  • نیاز دارید تا تمام این موارد را برروی هر ویژگی و تابعی از وب سایت امتحان کنید. حتی اگر به نظر می‌رسد که امکان کشف هیچ آسیب پذیری دراین نقطه وجود ندارد، که همیشه چیزی برای کشف کردن وجود دارد. سعی کنید “توابعی” که پنهان هستند یا خواندنشان سخت است را پیدا کنید.
  • همیشه هدفتان را روی حملات با شدت بیشتر تنظیم کنید، چراکه نه؟! مهم نیست که چقدر زمان می‌برد، باید همیشه باگ های کم تاثیر را برای بدست آوردن تاثیرات شدید و بحرانی ترکیب کنید.

اگر قصد دارید طبق مجموعه مهارت هایی که دارید برنامه های خاصی را انتخاب کنید، می توانید بااستفاده از فیلترهای زیر که در HackerOne وجود دارد این کار را انجام دهید. در Bugcrowd هم فیلترهای مشابهی وجود دارد.

asset type
ویژگی های فنی براساس مهارت های شما

نکات مهم

  • زمانگیرترین قسمت هر برنامه باگ بانتی مطالعه کامل اسکوپ آن برنامه باگ بانتی است، که باید از ب بسم الله تا نون پایان نکته به نکته خوانده شود ( چراکه ممکن است در همین توضیحات اطلاعات کاربردی و مفیدی پیدا کنید که به کارتان بیاید)
  • برنامه ای را انتخاب کنید که با آن راحت هستید. برای مثال اگر توسعه دهنده PHP هستید، برنامه ای را انتخاب کنید که بتوانید از این مهارت تان استفاده کنید. یا اگر توسعه دهنده اندروید هستید، برنامه ای را انتخاب کنید که اپلیکشن اندرویدی آن شرکت نیز داخل اسکوپ برنامه باشد ( فرض براین است که باگ بانتی موبایل را بلد هستید).
  • در اولین برنامه باگ بانتی ممکن است چنین حسی داشته باشید.

من نمیتونم هیچ باگی پیدا کنم…

  • اینکه احساس بی تجربگی کنید کاملا طبیعی است، اما به یاد داشته باشید این پایان خط نیست. اولین چیزی که باید به یاد داشته باشیداین است که تمام مواردیکه قبلا تست شده اند را تست کنید، تمام چیزهایی که خودتان می‌دانید به علاوه تست کیس ها، وردلیست و پی لودهای بیشتری که در Github وجود دارد را یادبگیرید و دوباره تست کنید… این کار را 10-15 روز انجام دهید. ثانیا، بااستفاده از رایت‌آپ ها(گزارش های باگی که قبلا توسط سایر شکارچیان ثبت شده است) می‌توانید موارد آزمایشی تان را توسعه دهید، یا با رفتارهای ناهنجار وب سایت ها بیشتر آشنا شوید و … سپس این دو کار را دوباره و دوباره انجام دهید…

چه زمانی کار ما با برنامه باگ بانتی تمام می‌شود

  • اگر در مرحله جمع‌آوری اطلاعات متوجه شدید که وب سایت از توابع متفاوتی استفاده کرده است و شما با آن راحت نیستید، مثلا وب سایت از GraphQL استفاده کرده است ولی شما بیشتر با REST API کار کرده اید و راحت هستید. سپس به عنوان فرد تازه کاری که با REST API راحت هستید به دنبال برنامه باشید که از آن استفاده کرده است.
  • زمانیکه پس از3 الی 4 هفته چیز جالب توجهی نتوانستید پیدا کنید، به نظر من زمان آن رسیده است که به دنبال یک برنامه باگ بانتی دیگر بگردید. همچنین ممکن است این اتفاق برای این باشد که شما نیاز به مطالعه و یادگیری بیشتر دارید، که این هم به این معنی است که شما دارید وقت تان را تلف می‌کنید. برنامه های باگ بانتی زیادی وجود دارند که باگ های دم دستی برای کشف در آن ها وجود دارند. بنابراین، دانستن بهترین زمان برای رها کردن یک برنامه باگ بانتی یک نکته بسایر مهمی است که باید آن را بدانید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *