Боль багхантеров: дубликат на крит
Всем привет. Сегодня хочу затронуть одну из самых неприятных тем на 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
· 16.06
Самая опасная ошибка считать не полученные выплаты. Оттого грустнее будет. А так в мире бб выживает быстрейший
ответить
коммент удалён