Три дубликата, за которые заплатили — почему качество репорта важнее скорости
На Bugcrowd один хантер получил выплаты за три дубликата. Он не был первым, кто нашёл уязвимость. Но его отчёт, PoC и описание импакта оказались настолько убедительными, что заказчик решил заплатить повторно. Его цитата с Bugcrowd LevelUp: «Напишите отличный репорт, покажите реальный импакт — и команда триажа будет с вами сотрудничать, даже если ваш репорт — дубликат».
А теперь честно: сколько раз вы тратили часы на поиск бага, а потом за пять минут набрасывали отчёт? Вот где деньги остаются на столе.
🎯Заголовок решает всё
Триажер читает десятки репортов в день. Заголовок — часто единственное, что он видит перед назначением приоритета. Формула простая: тип уязвимости + актив + импакт.
Сравните сами:
• «XSS» → триажер вздыхает • «Stored XSS в профиле пользователя → захват сессии администратора на admin.example.com» → триажер сразу понимает severity и может проверить на дупликаты
Общие заголовки вроде «XSS in app» не дают ни оценить критичность, ни отсортировать поток входящих репортов. Особенно в программах с wildcard-скоупом.
➡️Описание: пишите для того, кто не знает приложение
Не предполагайте, что триажер работает с этим продуктом давно. Он может быть новичком в команде или вообще нетехническим специалистом. Включайте:
• CWE-идентификатор — мгновенное понимание класса проблемы • Точный эндпоинт, параметр, HTTP-метод • Нестандартные заголовки, без которых воспроизведение не сработает • Окружение — браузер, ОС, устройство, если это влияет на результат
Простой тест: если триажер воспроизведёт баг, прочитав только описание — вы написали достаточно.
👉PoC — не опция, а необходимость
Без рабочего PoC репорт — заявление без доказательств. Нерабочие PoC — боль триажеров: воспроизвести не могут, репорт уходит в «N/A».
Что отличает сильный PoC:
• Воспроизводимость в чистом окружении. Пейлоад работает только в Firefox? Напишите об этом до шагов, а не после • Минимальность. Один запрос, одно действие, один результат. Без лишнего кода • Raw HTTP-запрос для Burp Suite. Триажеру достаточно скопировать его в Repeater, подставить свой cookie и нажать Send
Этот формат экономит триажеру десятки минут и резко снижает шанс получить статус «Cannot Reproduce».
🎇Главный вывод: репорт — это не формальность после охоты. Это документ, по которому принимают решение о деньгах. Структура, CVSS-оценка, коммуникация с вендором, типичные ошибки — всё это разобрано в полной версии статьи.
https://codeby.net/threads/kak-napisat-bug-bounty-report-ot-struktury-do-maksimal-noi-vyplaty.94812/