Як заробити понад $15 000 на bug bounty за 8 місяців

26.03.2025 1 хвилин Автор: Lady Liberty

Дізнайтеся, як Шреяс Чавхан заробив понад $15,000 за перші 8 місяців участі в bug bounty, починаючи з нуля. Детальний план дій та поради для початківців дослідників безпеки.

  • Дисклеймер: Уся інформація в цьому тексті подана від імені автора та ґрунтується виключно на його особистому досвіді, спостереженнях і висновках.

Чому я це пишу?

Я постараюся бути максимально прямим. Минуло майже 8 місяців, як я почав, і я вже перевищив позначку в 15 000 доларів винагород без жодного досвіду винагород за помилки*. Багато з вас, добрих людей, зв’язувалися зі мною на різних платформах, щоб привітати (я дуже вдячний за це!), і разом з цим я також часто отримував від вас варіанти цього запитання:

і ще 100+ подібних DM, і оскільки неможливо відповісти кожному з вас на те саме питання, я вирішив відповісти на нього публічно.

Гмм, я також хотів сказати, що я дуже ціную всі ваші DM і завжди буду радий допомогти. Я відповім на всі ваші поширені запитання один за одним публічно, як тільки зможу. Також, будь ласка, не надсилайте мені DM із словами «Привіт», «Привіт», «Привіт», «Як справи?» – будьте прямими, запитуйте те, що ви хочете запитати, якщо ви звернетеся до мене словами «привіт», «привіт», «привіт», ви, ймовірно, не отримаєте відповіді.

Отже, дозвольте мені відповісти на все, що стосується дорожньої карти, крок за кроком:

Чи маю я попередній досвід у Bug Bounties?

Це трохи складне запитання, щоб відповісти, чесно кажучи. Я б сказав, що в серпні 2023 року я мав майже нуль досвіду, коли починав роботу (упс! у всіх було нуль досвіду, коли вони починали 🤦🏻 – що я говорю), але я б сказав, що у мене був досить солідний технічний досвід. Рівень не експерта – достатньо, щоб зрозуміти основи. Я повідомляв про дуже елементарні помилки, як-от введення гіперпосилання в електронну пошту, відсутність обмеження швидкості, незавершення сеансу тощо, коли я вперше почав.

Я закінчив коледж у травні-червні 2023 року, і я маю ступінь CS, якщо це допоможе.

Коротка хронологія про моє походження

  • 2019-2022: досліджував багато різних технічних галузей/навичок, таких як розробка інтерфейсу, розробка інтерфейсу користувача/UX, фріланс, конкурентоспроможне програмування, 100 днів коду тощо. Міг трохи кодувати на C++, python тощо – лише базові речі. Ви можете перевірити мій профіль GitHub, щоб отримати ідею, тому що я використовував документування всього на GitHub

  • 2022-2023: Вирішив, що оберу кібербезпеку своєю кар’єрою.

  • Березень: Вирішив, що піду на OSCP і зібрав усі ресурси. Склав план підготовки, але відразу ж відмовився від практики основ Linux, тому що я думав, що хочу опанувати Інтернет, і я зрозумів, що OSCP є більш загальним. Ви можете знайти мій план тут (зверніть увагу: я не дотримувався власного плану)

  • Березень – вересень: витратив багато часу в коледжі, не роблячи нічого важливого.

  • Вересень: я вирішив, що зараз буду готуватися до OSWE, тому що я хочу опанувати веб-додатки. Коротше кажучи, я підготував план вивчення передумов, але дуже скоро відмовився від навчання в коледжі тощо. https://github.com/shreyaschavhan/oswe-awae-pre-preperation-plan-and-notes

Що я навчився, перш ніж відмовитися від цього:

  1. Основи Linux: https://github.com/shreyaschavhan/linux-commands-cheatsheet

  2. Сценарії Bash: https://github.com/shreyaschavhan/bash-scripting-cheatsheet/

  3. RegEx: https://github.com/shreyaschavhan/regex-notes

  4. Розширене впровадження SQL: https://github.com/shreyaschavhan/sql-cheatsheet

  5. PowerShell: https://github.com/shreyaschavhan/powershell-notes

  6. Python: https://github.com/shreyaschavhan/python-for-awae

  7. і PHP, основи Java

2023-2024: Життя в коледжі, випускний проект, веселощі. Більшу частину мого останнього року навчання в коледжі я провів за переглядом фільмів, читанням підручників з підвищення продуктивності, підготовкою до іспитів, написанням завдань, випускним проектом, подіями в коледжі, і тому не було часу зосередитися на чомусь одному. Наш проект останнього року базувався на безпеці Blockchain, тому я також отримав пропозицію про роботу в галузі безпеки Web3, але мені чомусь довелося відмовитися від цієї пропозиції.

  • Травень 2023: закінчився коледж

  • Червень 2023: Відпочив

  • Липень 2023: Почав готуватися до того, щоб розпочати виплату винагород за помилок.

  • Серпень 2023: фактично почали полювання та пріоритетність винагород за помилок.

Мій прогрес/статистика на даний момент (з липня 2023 р.)

Днів роботи:

Загальний час роботи:

Графік розвитку баунті:

Час, витрачений на навчання

Примітка: я не враховую переважно липень, тому що я витратив більшу частину свого часу на навчання в липні 2023 року та зарахував його як винагороди за помилки, тому дані в липні дещо спотворені.

Дорожня карта

Отже, нарешті у розділі відповідей на основне запитання, на яке ви хотіли отримати відповідь:

Якої дорожньої карти ви дотримувалися, щоб прогресувати швидше, і що б ви порадили іншим новачкам?

Наскільки я знаю, слухайте, люди, більшість із вас уже знають, що робити, але ви вирішуєте не робити цього, тому що витрачаєте час на пошуки найефективнішого способу або вивчаєте щось більше, ніж вам потрібно, не виконуючи їх. Це було правдою для мене, і це, мабуть, буде правдою для вас теж.

Тепер, які саме кроки я зробив і я б запропонував вам, хлопці?

Крок 1: (необов’язково)

Опануйте базові команди Linux (створення, видалення, оновлення, читання файлів і каталогів) і базові сценарії bash. чому тому що, навіть якщо це не обов’язково, воно служитиме основою для того, наскільки ефективно ви керуєте своєю ОС, а також інструментами, які ви використовуватимете.

Ресурси: Ви можете використовувати мої нотатки для вивчення безпосередньо: https://github.com/shreyaschavhan/linux-commands-cheatsheet

Або я дуже рекомендую цю книгу:

  1. The Linux Command Line: A Complete Introduction

  2. Shell Scripting: How to Automate Command Line Tasks Using Bash Scripting

Крок 2: Практика:

  • Команди Linux: Розв’яжіть завдання з OverTheWire Bandit. OverTheWire: Bandit

  • Після цього розв’яжіть задачі на cmdchallenge.com

  • Bash-скрипти: Практикуйте Bash-скрипти на HackerRank

  • Вирішуйте програмні задачі HackerRank або на сайті learnshell.org

Примітка. Вам не потрібно розв’язувати все, просто потренуйтеся, доки не переконаєтеся, що можете правильно впоратися з основами.

Крок 3:

  • Почніть читати «Довідник хакерів веб-додатків»

  • Виконавши все вищезазначене, почніть читати «Посібник хакерів веб-додатків»

Припускаючи, що ми зовсім новачки, зосередьтеся більше на розділі «Технології веб-додатків». Деякі з тем застаріли, але все інше здебільшого актуальне. Якщо ви відчуваєте, що не вмієте читати, знайдіть кожну тему, згадану в книзі, на YouTube і перегляньте/прочитайте якомога більше вмісту в Інтернеті, доки не зрозумієте основи.

Крім того, вам не потрібно знати все глибоко, вам просто потрібно зрозуміти, що ці поняття існують. Наведений вище розділ створить основу для вашого розуміння веб-служб і веб-архітектури тощо.

Крок 4:

Завершення «Посібника з хакерів веб-додатків»

Закінчивши з основами веб-технологій, зосередьтеся на тому, щоб закінчити всю книгу від початку до кінця, навіть якщо ви нічого не зрозумієте. Просто проведіть через це.

  • Основна мета цього кроку — ознайомитися з існуючими поняттями, навіть якщо ви не зможете пригадати багато чого зрештою. Це допоможе нам: “О, так, здається, я це десь читав. Дозвольте мені перевірити це ще раз”. коли ви полюєте на справжні цілі.

  • Крім того, поки ви читаєте, запишіть назву кожної помилки, з якою ви натрапили (деякі з них застаріли та застаріли, але це нормально). До кінця книги ви будете впевнені в основах веб-безпеки. Це також створить основу для вашого хакерського мислення, і ви не побачите більшість речей в Інтернеті надзвичайно складними чи новими, коли читаєте в Інтернеті. Вам також не буде важко вивчати нові теми.

Примітка: мені знадобилося 7 повних днів, щоб завершити кроки 3 і 4. Ваш пробіг може відрізнятися, але не дозволяйте цьому зайняти більше, інакше вам стане нудно і ви можете здатися. Крім того, якщо ви відчуваєте бажання кинути під час читання, ви можете виконати кроки 3 і 4 одночасно, поки ви виконуєте крок 5.

Крок 5:

Одна помилка (уміння) за раз.

Я припускаю, що ви записали помилки та типи помилок у кроці 4, ви також можете зібрати список помилок з Інтернету.

Тепер, оскільки ми початківці, нам потрібно вибрати одну просту помилку, яка є дуже поширеною і яку ми можемо знайти, наприклад: IDOR — є скрізь і її легко знайти (виберіть свою власну, але якщо ви запитаєте мене, я б сказав, що почну з IDOR). Зберіть кожен окремий блог, кожен окремий звіт H1 і кожне окреме відео YouTube, яке ви можете знайти на IDORs, і почніть читати/переглядати їх одне за іншим, доки не відчуєте, що поняття достатньо знайомі, щоб почати шукати їх у реальних цілях.

100% вашого часу потрібно витратити на вивчення IDOR, поки ви не ознайомитеся з концепціями.

Крок 6:

Розділіть свій час на 60% полювання та 40% навчання (більше виконання, менше теорії) і додавання помилок до нашого набору навичок.

Ми ще не закінчили нашу теорію, але нам потрібно почати полювання, щоб ознайомитися з реальними проксі-запитами, які проходять через нашу історію проксі.

Розділіть свій час на 60% полювання та 40% навчання. Вам не потрібно знати про баги, просто навчіться читати проксі-запити та ознайомтеся з ними. Крім того, почніть виконувати те, що ви дізналися про свою першу помилку, наприклад IDOR або XSS – що ви виберете.

  • Протягом 60%: Витратьте час на пошук однієї помилки, яку ви виберете спочатку.

  • Протягом 40% часу: Виберіть наступну помилку, яку, на вашу думку, слід вивчити наступною, і повторіть крок 5, але одночасно шукайте 60% часу.

Крок 7:

Продовжуйте додавати помилки до свого набору навичок протягом 40% свого часу та виконуйте їх 60% свого часу виконання.

Продовжуйте додавати помилки до свого набору навичок, доки ви не переконаєтеся, що ви розумієте достатньо помилок, або коли ви дізнаєтеся про всі помилки, про які хочете дізнатися. Ви також почнете отримувати дійсні помилки на цьому кроці, оскільки ви вже виконуєте 60% свого часу.

Кілька речей, на які варто звернути увагу:

  • Не засмучуйтесь, коли отримаєте дублікати чи інформативність. Наша мета — отримати досвід, а дублікати є дійсними помилками. Інформатив навчить концентруватися на впливі. Не повідомляйте про будь-яку помилку, яка, на вашу думку, призведе до NA (не застосовується).

  • Виберіть хорошу програму з хорошою командою безпеки. Це поле спричинить багато вигорянь і демотивації – найбільше цьому сприяє погана програма.

Я написав твіт про те, які помилки я зробив і які виправлення зробив, ви повинні прочитати це:

https://x.com/shreyas_chavhan/status/1753668854989951209

Крок 8:

Зосередьтеся на освоєнні цих кількох помилок, доки не досягнете своєї першої фінансової цілі.

Тепер, коли ви додали більшість помилок, які хотіли вивчити, до свого набору навичок, зосередьте 100% свого часу на їх опануванні та відпрацюванні в реальних цілях, доки не досягнете своєї першої фінансової цілі.

Кожен повинен мати свою першу фінансову ціль (не обмежуйте її часом, інакше це демотивує вас, а не мотивує, коли ви не отримуєте жодних премій). У мене було 15 000 доларів винагороди за помилки, і я цього досяг.

Крок 9 (необов’язково):

Витратив час на читання мінімум 1000 звітів H1

Я прочитав 5000, і я пропоную прочитати принаймні 1000, щоб ви зрозуміли, якого впливу очікують програми, а якого ні.

Крок 10:

Розділивши наш час на 80% полювання та 20% навчання на невизначений термін.

Тепер, коли ви досягли своїх фінансових цілей, а також потренувалися знаходити більшість помилок у реальному світі, ви повинні розділити свій час на 80% полювання та 20% навчання, щоб постійно ставати все кращим і кращим. Вивчайте нові речі, практикуйте їх. Додайте складні навички до свого набору навичок.

Я зараз на цьому етапі.

Примітка: я не згадував жодних лабораторій, ctfs, hackthebox чи tryhackme, тому що, чесно кажучи, я не робив жодної з них, окрім кількох лабораторій на portswigger. Вони можуть бути корисними, але я просто не хотів витрачати свій час на речі, які не призведуть до винагороди. Якщо я витрачаю стільки часу на навчання та виконання, то краще бути справжньою метою, яка приносить користь. Я згадав лише лабораторії з кількох тем, які, на мою думку, важко розпізнати в реальному світі, і для цього я б запропонував лабораторії portswigger.**

Окрім цього, я також вважаю ці 2 речі основними істинами та основними відмінностями того, наскільки швидко ви будете прогресувати:

Важливо не те, скільки ви знаєте, а те, скільки ви реалізуєте.

Вимірювання керує процесом виконання. Якщо ви не вимірюєте й не аналізуєте, до яких зусиль докладаєте, ви не просуватиметеся так швидко, як мали б, тому що ви не розумітимете, які дії дають вам результати, а які дії вам потрібно припинити. Яке почуття спонукає вас відкладати, а яке – виконання тощо.

Я думаю, що це все.

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.