⛈ Как искать 0-day и как получить CVE?
Привет! Если тебе надоел баг баунти, то существует аналог в виде поиска 0-day уязвимостей и получения CVE в open source проектах. Но как именно это делать, где искать и как зарегистрировать CVE — этими секретами сегодня поделится с нами отличный application security специалист с 4-мя CVE за спиной и 4-мя годами опыта работы. Встречайте, друзья, @johnny_shein 👏
⏳ Шаг 1. Выбор цели
Beginner: Если вы хотите попрактиковаться или начать это дело, то цель можно найти на GitHub'е по поиску, например CMS, но со вкладкой "security". Если вкладка есть, то можно спокойно приступать к поиску багов. Её может и не быть, это значит, что придется искать контакты вендора и общаться с ним напрямую. Также стоит посмотреть, сколько звезд у проекта. Нужно минимум 300 звёзд. Это является небольшой гарантией того, что проект поддерживается, разработчики активные. И чем меньше звезд, тем больше шанс найти багу. Если брать WordPress, у него, хоть и много звёзд но он заисследован до дыр.
Skilled: Для более опытных ребят в этой теме существует сайт по баг-баунти для opensource проектов – https://huntr.com. В данный момент он больше делает уклон в AI-проекты, но можно найти и обычные. Также оттуда можно почитать репорты хантеров.
🖥 Шаг 2. Подготовка
После того, как вы определили, какой проект будете запускать, его нужно просто развернуть у себя на виртуальной машине. На GitHub я обычно смотрю, как происходит установка проекта; если она проста, то можно использовать. В основном я использую команды Docker для установки и просто разворачиваю проект у себя.
🔍 Шаг 3. Ищем 0-day
Чтобы найти 0-day, я читаю код. В первую очередь рассматриваю метод black box. Если какой-то механизм в проекте кажется интересным или payload не работает, я обращаюсь к коду. Также никто ничего не скажет вам, если пройдётесь по коду с использованием SAST и если подтвердить найденную уязвимость через динамику, то можно получить CVE.
P.S. Если хочешь увидеть как это делать на практике — загляни в полезные ссылки.
👮♀ Шаг 4. Регистрация CVE
Получить CVE можно через huntr использовав публикацию отчета, также придется говорить где в коде указать фикс уязвимости.
Можно через github, но нужно искать контакты разработчика, он будет сам регистрировать CVE, либо использовать фичу в gihub — advisory database
❔Легко ли найти 0-day?
Да, я нашел уязвимость Insufficient Session Expiration. Ее суть в том, что если в двух разных браузерах зайти на ресурс под одним аккаунтом, изменить пароль и разлогиниться, сессия в первом браузере остается активной.
За это мне и дали первую CVE 😉
🟢Полезные ссылки:
📶 Методика поиска 0-day уязвимостей на практике от RiotSecTeam
📶 Практика чтения уязвимого кода
📶 Отчеты баг хантеров с сайта huntr
ЧТНП | #web
Post #133
7.79K
- 🔥 23
- ❤ 3
- 👍 2
- ❤🔥 1