Боль багхантеров: дубликат на крит

Всем привет. Сегодня хочу затронуть одну из самых неприятных тем на Bug Bounty - дубликаты.

Для тех, кто не в курсе: дубликат это когда твой отчёт технически валидный, уязвимость реальная, импакт есть, но кто-то уже сдал эту же вулну раньше. В итоге отчёт принимается как дубликат и все выплаты и основные баллы получит тот, кто был первым.

И вот сегодня хочу рассказать один такой неприятный кейс из своего опыта.

━━━━━━━━━━ Что за отчёт ━━━━━━━━━━

Я нашёл BAC / IDOR на чтение конфиденциальной информации всех пользователей площадки.

По импакту это был действительно сильный отчёт: доступ к данным был связан с основной бизнес-логикой сервиса, а сама информация имела высокую ценность для продукта. В итоге приоритет подняли до Critical.

Звучит хорошо, но есть нюанс На отчёт повесили дубликат😢.

И в результате я потерял: • около 10k баллов • выплату от 250k • и немного веры в справедливость этого мира

Но чтобы хоть как-то отбить моральные страдания, решил написать пост о том, как именно я к этому пришёл.

━━━━━━━━━━ Мой флоу поиска уязвимости ━━━━━━━━━━

Так как веб обычно хантят гораздо активнее, я почти сразу пошёл смотреть мобилку.

Мой подход был простой: • поднять мобилку • прокинуть трафик через Burp • пройти основной функционал • собрать карту запросов • посмотреть, где мобильный клиент отличается от веба

В самом приложении было не так много точек входа, а именно около 10 основных сценариев. Я прошёлся по ним, проверил базовые варианты воздействия и понял, что напрямую ломать там особо нечего.

Но дальше началась самая интересная часть. Я стал смотреть не только сами запросы, но и ответы API. И в одном большом JSON-ответе заметил новые URL, которые раньше не встречал в основном функционале приложения.

Я начал проверять эти URL отдельно и обнаружил важный момент: ➠ для получения данных через них не требовалось проходить тот flow, который был заложен бизнес-логикой приложения.

То есть в нормальном сценарии пользователь должен был дойти до информации через оплату её, а не как не напрямую по данному эндпоинту.

По сути это была классическая история: ➤ в одном месте API раскрывает лишние ссылки ➤ в другом месте эти ссылки доступны без корректной проверки прав В итоге получается BAC / IDOR с сильным импактом

━━━━━━━━━━ Мини-итог ━━━━━━━━━━

Не всегда уязвимость лежит в основном функционале, который виден в истории Burp сразу после пары кликов. Иногда ценные эндпоинты раскрываются именно в ответах

Всем спасибо за внимание, а я пошёл грустить со своими 100 баллами за крит и 0 рублями за отчёт

#AppSec #BugBounty #IDOR #BAC #WebSecurity #MobileSecurity #Pentest #APISecurity #CyberSecurity

Боль багхантеров: дубликат на крит | Сетка — социальная сеть от hh.ru