Содержание статьи
У нас было два мощных веб-краулера, 1 174 991 домен баг-баунти, семь хедеров для обхода WAF, свой сервер в Digital Ocean на случай блокировки IP, список из 50 системных директорий для поиска и куча дополнительных мелких проверок на XSS, CRLF, open redirect и админки с простыми паролями... Не то чтобы все это было нужно в багхантинге, но если уж взялся автоматизировать поиск багов, то надо идти до конца.
— В. Поляков (JohnDoe1492)
Например, недавно была обнародована утечка авторизационного токена Snapchat для обращения к API. Уязвимость была оценена в 15 000 долларов США, при этом сам багхантер ожидал лишь статуса informative и более скромной награды.
Из своего опыта и опыта коллег могу сказать, что даже за server-status, phpinfo или лог-файлы выплата может достигать 1000 долларов. Хорошо, скажешь ты, но ведь искать все это вручную довольно утомительно и малопродуктивно, да и наверняка кто-то другой уже нашел все баги. Представь себе, далеко не так! Баги встречаются повсеместно, компании обновляют или выкатывают новые сервисы, разработчики забывают отключить журналы отладки или удалить репозитории.
Правила
В первую очередь советую внимательно ознакомиться с правилами программы, в которой ты хочешь принять участие: чем больше скоуп, тем шире attack surface и выше возможность что-нибудь найти. Тем не менее стоит обращать внимание на принадлежность сервисов к тем или иным доменам. Например, программы баг-баунти обычно не охватывают домены, принадлежащие третьей стороне. Впрочем, если есть шанс, что это повлияет на основные сервисы, можешь рассчитывать на повышение рейтинга на Hacker1 и денежную компенсацию.
Из российских компаний я бы отметил Mail.Ru Group. Это лояльная команда, которая быстро отвечает и принимает баги. Хотя поставили мне несколько n/a.
WARNING
Важное напоминание! Когда ты найдешь баг, не докручивай его до финала, если тебя не попросят об этом специально. Не нужно дампить базу, дефейсить сайт или каким-то образом влиять на пользователей. Тот, кто принимает у тебя баг, обычно и сам в состоянии довести дело до логического конца.
Еще один совет начинающим: не стоит выпрашивать деньги у компаний. Объективные баги они оценят по достоинству, опыта у них, скорее всего, гораздо больше, чем у тебя.
Готовим плацдарм
Для более эффективного багхантинга нам необходимо мониторить изменения на периметре компании — это позволит оперативно обнаруживать новые сервисы или новые версии веб-приложений. Также мониторинг может быть полезен, если у тебя есть команда — вы сможете обмениваться информацией при совместной охоте.
Serpico
https://github.com/SerpicoProject/Serpico
Первое, что нам понадобится, — система хранения и описания багов. В свое время я использовал Dradis, но сейчас предпочитаю Serpico. Эта программа позволяет заносить баги по классификациям и сразу подтягивает их описание. Все это прекрасно кастомизируется и масштабируется для командной работы.
Фреймворк работает в Linux/Win-среде, есть контейнер Docker для развертывания.
Nmap-bootstrap-xsl
https://github.com/honze-net/nmap-bootstrap-xsl/
Нет, читатель, я не считаю тебя мамкиным хакером, который не знает про Nmap. Но мы будем использовать еще и отличный аддон для работы с журналами сканирований nmap-bootstrap-xsl
. Он позволяет конвертировать результаты сканирований в HTML с удобным интерфейсом и возможностью выборки. Это бывает очень удобно при сравнении результатов сканирования.
Скачиваем nmap-bootstrap.xsl
и запускаем сканирование:
$ nmap -sS -T4 -A -sC -oA scanme --stylesheet https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/master/nmap-bootstrap.xsl scanme.nmap.org
$ scanme2.nmap.org
Далее преобразовываем выхлоп скана в HTML:
$ xsltproc -o scanme.html nmap-bootstrap.xsl scanme.xml
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»