Тотальный багхантинг: Начало
Решил все же написать статью о нашем с Саней (@MrKaban4ik) опыте в багбаунти.
История будет абсолютно не интересная для тех кто уже прошел путь от момента как ты впервые зашел на площадку до первых взятых отчетов - да, именно их я считаю самыми важными, потому что именно после них у тя появляется уверенность что ты можешь искать баги и находишь их.
предыстории. НЕБОЛЬШАЯ ИСТОРИЧЕСКАЯ СПРАВКА НА 5 МИНУТ.
Февраль 2025 года. Мы с Александром часто участвуем в CTF в рамках студенческой команды Capybaras. Недавно закончился Чемпионат России по спорт проге ИБ, мы написали квалы на чемпионат банка РФ и нас зовут в Екатиб на Уральский форум. Вуз платит - едем. К этому моменту мы знаем о вебе что он существует и что если нет никаких ограничений на загрузку можно загрузить файлик .php который может быть шелом и как то магически команды на OS исполняет. О багбаунти мы слышали, но не седели особо - потому что просто не знаешь что искать. Мы с Александром собираем вещи, едим в Сочи и оттуда летим в Екатиб. Хотя давайте меньше деталей, вы же тут не до вечера собрались читать. Вообщем-то первый наш форум по ИБ, много вендоров и лекций в молодежной программе. Знакомлюсь с ДВФУ-шниками, до сих пор {heart}. Но вернемся к форуму. Среди вендоров был и BI.ZONE.
Интерес конечно же у меня к нему был потому что они недавно выпускают Threat Zone и как только открылась выставка, а у нас шла кибербитва - я решаю незаметно сбежать и сходить залутать заветный журнальчик. Подхожу к стенду, решаю потыкать стендик и подходит какой-то тип в черном костюме и начинает спрашивать знаком ли я с продуктами компании, я жестко говорю что знаю EDR и какой то прикол с жуками, называемый bugbounty. А этот тип говорит : "Я глава этого продукта". Таким образом мы познакомились с человеком по имени Андрей Левкин - который сыграет на самом деле большую роль в том, чтоб мы начали багхантить. Форум заканчивается и мы едем домой.
Позже я вернусь к Андрею с фича реквестом и на этом завяжется наше общение, которое приведет меня на платформу BI.ZONE Bugbounty. В начале получалось не слишком хорошо, тыкалось все подряд. Первой уязвимостью стала 2-click xss на программе, которая оказывается уже была закрыта:) Ну то есть было понимание что успех неизбежен. В Апреле состоялся 4 Bug$Zone - ивент от площадке BI.ZONE BugBounty, где выбирают 25 лучших за сезон и зовут хантить на приватном скоупе программ, а потом еще и приватное афтепати устраивают с докладами. И Саню туда позвал. На bugbounty party был доклад shdw об использовании nuclei и я чета так загорелся, что решил начать использовать в багбаунти. Спойлер - дело пошло и первые мои отчеты были найдены именно таким способом. Вообще в целом скажу - самое главное это начать. Первые оплаченные отчеты помогают перейти вот этот барьер того что ты можешь. После все идет легче значительно.
Немного о Российском ББ как вижу его я.
Ну для начала - у нас есть 3 основных площадки : BI.ZONE BugBounty, Standoff365 и bugbounty.ru. Последняя существует давно и сейчас как будто бы не в лучшем своем состоянии, хотя недавно поменяла дизайн, активно отвечает на сообщения, фича реквесты и там есть по меньшей мере 1 уникальная программа - Securitm. Советую присмотреться, так как триаж достаточно приятный, программа направлена на багхантеров и не плохие выплаты. Лично у меня была ситуация когда ситуацию решили в мою пользу.
Помимо этого у нас есть селфхост программы - например Яндекс Bugbounty и программы Контура, которые размещены на их сайтах. Мое мнение - селф хост очень не удобно, был бы рад чтоб программы аккумулировались на площадках.
В целом по вендорам у нас так: Госуха, Финтех, Бигтех, хотя бывают и небольшие компании - им прям респект. А ну еще есть НСки на Standoff - но это ваще другая история. Есть вендора которые направляют свою программу на своих хантеров - ВК и МКБ как хороший пример. Когда-то ТБанк мне увеличил критичность в следствии своего ресерча - за это респект, я все помню:)
Есть еще несколько в приватке, но не могу к сожалению вам респектнуть, хотя сильно люблю пиццу:)
В целом хотелось бы верить что будут больше выходить компании, хотел бы увидеть Вкусно и Точка, сети Магнит и Пятерочка, КБ, Читаю город, конечно же РЖД и авиакомпании, сервисы Whosh и Urent. Хотелось бы чтоб вендоры понимали что багхантеры это как их сотрудники, с ними можно поддерживать деловую среду и совместо заниматься улучшением приложения. А еще респект тем, кто в воскресенье триажит:)
В CTF моей любимой категорией была стеганография, поэтому решать я умел только её. Со временем я начал понимать, что это направление не принесёт плодов, и решил, что пора сменить род деятельности. В качестве альтернативы я выбрал веб.
Буквально через несколько дней изучения материалов и решения задач на платформах, после усвоения основных уязвимостей, я выделил для себя наиболее интересную — LFI. Тогда же я решил проверить её на реальных сайтах. Именно с этой целью мной был зарегистрирован аккаунт на площадке Bug Bounty.
Просидев неделю и просмотрев абсолютно все домены всех публичных программ, я так и не смог обнаружить ни одной уязвимости локального включения файлов. Я продолжал изучать материалы и периодически заходил на платформу, чтобы проверить новые методы в реальных условиях, с надеждой, что мне повезёт.
И в конце концов мне повезло — но не совсем так, как я планировал. В один из дней я заметил, что на площадке появилась новая программа. Это был «СберАнтифрод». Программа была уникальна в своём роде, так как не была связана с привычными техническими уязвимостями. Поскольку это было что-то новое, никто не знал, что туда можно сдавать — в программе не было буквально ни одного отчета.
Тогда я решил рискнуть. Я поискал в интернете актуальные схемы мошенничества, которые часто публикуют в Telegram-каналах, и отправил две из них. Ответа от Сбера долго не было, но спустя два месяца мне пришли две крупные выплаты — на 30 и 80 тысяч. В тот момент моему счастью не было предела. Появилась огромная мотивация двигаться дальше и развиваться в баг-баунти.
Поэтому первый совет, который я хотел бы дать: не стоит бояться пробовать что-то новое или ошибаться. Если продолжать пытаться, рано или поздно получится.
Теперь продолжу рассказ. Вернувшись с уже упомянутого мероприятия в Екатеринбурге, я сдал ещё один отчет, связанный с открытым редиректом, и в итоге занял 26 место в квартальном рейтинге. Этого было недостаточно, чтобы попасть на Bugs Zone, но Андрей дал мне шанс и пригласил поучаствовать. За что ему огромное спасибо.
На BugZone был интересный scope, но в то же время я понимал, что вместе со мной баги ищут профессионалы с многолетним опытом. Поэтому во время мероприятия я вывел для себя ещё одно правило: искать то, что не ищут другие. Мне помогал Влад, и общими усилиями мы смогли сдать 5 уязвимостей. Это были очень простые, но непопулярные уязвимости, о которых знают немногие.
Благодаря правильно выбранному вендору и нестандартному мышлению я занял 5 место на мероприятии. Это было очень круто.
На текущий момент я испробовал много методов поиска уязвимостей и считаю, что в основе хантингa должны лежать как автоматизация, так и ручной поиск. Особенно интересными для меня являются уязвимости бизнес-логики, поскольку их невозможно найти сканерами, а шанс получить дубликат значительно ниже.
В баг-баунти, как и во всей сфере информационной безопасности, важно постоянно развиваться, изучать что-то новое — именно так можно находить баги раньше других.
Для всех, кто хочет начать.
Надо хантить. Да - все просто.
Ко мне буквально заходили пару людей с вопросом - "как понять что готов?". Чуваки, я веб тыкать начал тогда, когда бб начал заниматься, я весь иб путь форензикой занимался:) Как говорил один товарищ - если ты думаешь что готов, ты уже опоздал. Есть желание - сейчас же регаемся на площадке и начинаем
Но некоторые советы мы Саней все же дадим:
1. Старайся делать то, что другие не делают.
То есть зачастую на программе низковисящие баги будут уже сданы, мб будут не пофикшены - но сданы. И тут хорошо бы выработать у ся несколько баг которые ты ищешь, а другие такое сдают реже. С такой узкой направленностью ты чаще будешь ловить что-то, что другие пропустили. Но есть шанс нарваться на информативы:) Так что терпение и труд.
2. Bugspraying - путь к обогащению.
Bugspraying — это методология поиска уязвимостей, при которой исследователь кибербезопасности (например, участник программы bug bounty), обнаружив специфическую ошибку (баг) в одном приложении, продукте или веб-сайте, целенаправленно ищет аналогичную ошибку в других, часто похожих или конкурирующих продуктах или сервисах.
На моем опыте была уже одна бага которую я сдавал во все программы, что видел и она мне принесла более 8 валидных отчетов на сумму около 250к, хотя ее эксплуатация это несколько кнопок. Суть в том что данный риск был миттигирован в общем и не представлял опасности, но я вспомнил об этой возможности, которая появилась еще когда современное иб только строилось и в таком виде вендора оценивали багу зачастую сильнее чем SQL, LFI, или даже RCE. А дальше я просто пошел сдавать ее везде.
3. Читать ресерчи и отчеты других хантеров
В уже упомянутом BugZone все баги, что были найдены - были вдохновлены какими-то отчетами. В частности статьей Slonser и Kaspersky. Часто из статьи можно взять реализацию, где-то endpoint, а где-то узнать что это вообще так работает.
Обязательно становитесь частью комьюнити. Комьюнити - это когда ты не один и вас много. И вот это много часто помогает. Когда-то Илья может закинуть перерыв на кошку, кто-то кинуть сберовский ковер и тем самым поднять тебе настроение - а иногда бывают моменты, когда ты познакомился с кем-то из комьюнити и можешь у опытного товарища спросить совет по баге. Комьюнити делает тебя сильней, это возможность - которой нужно пользоваться.
Что можно автоматизировать? Очевидно рекон. Есть большое количество инструментов для поиска субдоменов. Можно автоматизировать проверку багов через большое количество сканеров. Еще что я встречал реже, но мне кажется этим кто-то да занимается - мониторинг ресурсов компании. Ты можешь смотреть скоуп и замечать изменения на нем. Выкатили новый сервис и никому не сказали? - вперед.