Примечание
Это руководство предназначено для начинающих, которые все еще имеют минимальные знания в области информационной безопасности. Я стараюсь поощрять молодых людей, у которых много времени и которые хотят заниматься чем-то продуктивным.
Введение
Как вы уже знаете, существует множество сайтов-посредников, которые работают с компаниями для повышения эффективности программы Bug Bounty, в том числе:
- hackerone.com
- bugcrowd.com
- intigriti.com
- yeswehack.com
- openbugbounty.org
- synack.com (privat)
Как это работает ?
- Ищем уязвимости
- Пишем сделанные шаги необходимые для эксплуатации уязвимости
- Скидывает этот отчет тех. поддержке.
- Получаем монетку.
Что нам нужно для этого?
- sublist3r
- httprobe
- webscreenshot
- header response
- relative-url-extractor
- jsfiles extractor
Установка настроек
Я написал небольшой скрипт, чтобы облегчить процесс установки инструментов.
root@debian-s-1vcpu-2gb-ams3-01:~# git clone https://github.com/airwawekz/xrec.git
root@debian-s-1vcpu-2gb-ams3-01:~# cd xrec
root@debian-s-1vcpu-2gb-ams3-01:~# chmod +x xrec-install.sh
root@debian-s-1vcpu-2gb-ams3-01:~# ./xrec-install.sh
Процесс идентификации
Предположим, что программа, в которой мы хотим участвовать, направлена на поиск уязвимостей во всех поддоменах, включая основной домен. Обычно основной домен более защищен, чем его субдомены, что означает, что мы должны сосредоточиться на субдоменах.
Например: *.example.com
Первый шаг:
Мы идентифицируем все субдомены, которые принадлежат example.com. Для этого мы используем Sublist3r.
root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/Sublist3r/
root@debian-s-1vcpu-2gb-ams3-01:~# python sublist3r.py -d example.com -o domains.txt
Я предлагаю для лучших результатов добавить API в конфигурации скрипта. (Напр .: Virustotal)
Мы ждем завершения сканирования, в конце которого вы создадите файл «domains.txt», в котором будут сохранены результаты процесса сканирования.
Второй шаг:
Проверяем, какие домены действительны, для этого используем httprobe.
root@debian-s-1vcpu-2gb-ams3-01:~# cat domains.txt | httprobe | tee -a alive.txt
После завершения этого процесса вы создадите файл с именем «alive.txt» с действительными поддоменами.
Третий шаг:
Мы делаем скриншоты для каждого действующего сайта, этот шаг помогает нам быстро определить потенциальные уязвимые субдомены, если у нас есть большой список действительных доменов.
root@debian-s-1vcpu-2gb-ams3-01:~# python /root/xrec/webscreenshot/webscreenshot.py -r chromium -i alive.txt -o /root/xrec/webscreenshot/screens/
Результаты будут сохранены в папке / root / xrec / webscreenshot /screen / как * example.com.png.
После завершения этого процесса я рекомендую вам проверить каждый скриншот отдельно. Я часто нахожу забытые поддомены с уязвимыми cms.
Четвертый шаг:
Проверяем header response, этот шаг является очень важным, есть много уязвимостей, которые могут быть использованы через header.
Например: Yahoo Remote Code Execution
root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/ | sudo chmod +x response.sh
root@debian-s-1vcpu-2gb-ams3-01:~/xrec# ./response.sh /root/xrec/Sublist3r/alive.txt
В конце этого процесса будут созданы 2 папки «headers» и «responsebody», в которые будут сохранены результаты проверки.
Пятый шаг:
Последний шаг, это извлечение endpoint из файлов JS. Для этого используем jsfiles extractor.
root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/ | chmod +x jsfiles.sh
root@debian-s-1vcpu-2gb-ams3-01:~# ./jsfiles.sh
После завершения этого процесса создается папка с именем «scripts», где все файлы будут иметь вид www.example.com.
На данный момент мы собрали достаточно информации, нам осталось только протестировать.
Например:
Если у вас есть конечные ссылки: “details.php?id=3” или “details/id/3” первым действием является тестирование на наличие уязвимостей, таких как XSS/SQLi.
Другой пример, если у нас есть конечные ссылки: =redirectUrl=/example/photo мы можем попробовать open redirect.
Если у вас есть конечные точки формы: /pingcheck.php?s=google.com, можете сделать тесты для RCE или SSRF, если у вас есть что-то подобное /viewpage.php?s=google.com.
Что можно добавить еще?
- Больше источников / API для сканирования поддоменов (например, Censys, Shodan и т. Д.)
- Сканирование портов с помощью nmap
- Направление bruteforce
- Автоматизация всех процессов
Маленькая история как нашел уязвимость XSS в Snapchat
Используя процесс сканирования поддоменов, я обнаружил, что этот поддомен snappublisher.snapchat.com имеет интересную функцию загрузки изображений после нескольких неудачных попыток пройти фильтр, я заметил что можно загрузить файлы формата SVG (Scalable Vector Graphics) а дальше все было просто
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
<script type="text/javascript">
alert(document.domain);
</script>
</svg>
Я сохранил код как img.svg и загрузил изображение, затем открыв изображение в новой вкладке ->Handler был активным.
К сожалению, эта уязвимость может быть использована только для фишинг-атак. Мы сообщили об этой уязвимости команде Snapchat через Hackerone. Нам сказали спасибо))
Не посмотришь—не увидишь, не расспросишь — не найдешь.
Автор: AlexHost