Цель: HackerOne — собственная платформа для баг-баунти.
🔤 Как это работало:
Исследователь редактировал свои сертификаты (OSCP, CEH) в профиле и перехватил GraphQL запрос в Burp Suite. В мутации
createOrUpdateHackerCertification передавался параметр id сертификата.Он изменил свой ID на чужой и отправил запрос — сертификат другого пользователя был успешно удалён. Платформа не проверяла, кому принадлежит объект.
Через простой enumeration можно было зачистить профессиональные credentials любого хакера на HackerOne: OSCP, CISSP, CEH и другие лицензии, подтверждающие квалификацию.
💥 Последствия:
Массовое удаление лицензий разрушает репутацию специалистов и подрывает доверие к платформе. Для HackerOne это был критический удар по собственному имиджу.
🛡️ Что сделали:
Добавили проверку ownership в GraphQL resolver — теперь перед любой операцией сервер проверяет
cert.user_id === current_user.id
💡 GraphQL мутации часто пропускают авторизацию. Если видишь ID в запросе — всегда подставляй чужой.
📎 Источник
🐸 Библиотека хакера
#breach_breakdown
