Быстрое поглощение субдомена $2000
КТО Я
Меня зовут Александр Тангавел, также известный как ValluvarSploit, я работаю охотником за ошибками и тренером. Я люблю разведку. Я основатель и генеральный директор ValluvarSploit Security. В ValluvarSploit Security мы проводим индивидуальное онлайн-обучение по Bug Bounty. Для получения дополнительной информации посетите нашу страницу LinkedIn.
ЦЕЛЬ
Сегодня я собираюсь поделиться тем, как я обнаружил уязвимость захвата поддоменов Fastly и заработал свою первую четырехзначную награду. Давайте начнем.
ПРЕДЫСТОРИЯ
Это было начато 2 октября 2022 года в воскресенье. День начался как обычно. Я проснулся в 6 утра, закончил рутинную работу, проверил баланс мобильных данных (осталось 1,3 ГБ), включил мобильную точку доступа, подключил ноутбук и возобновил охоту на приватной программе. Я потратил несколько часов на целевое приложение, но ничего не нашел, поэтому сделал небольшой перерыв. Раньше я пересматривал свои старые частные программы не реже одного раза в шесть месяцев. Итак, я просмотрел свои личные приглашения, выбрал старую программу и начал выполнять перечисление поддоменов (назовем нашу цель как redacted.com).
ЗАХВАТЫВАНИЕ СУБДОМЕНА
Захват поддомена происходит, когда злоумышленник получает контроль над поддоменом домена. Это происходит из-за неправильной настройки/ошибок DNS.
ПЕРЕЧИСЛЕНИЕ ПОДДОМЕНОВ
Я начал перечисление субдоменов с помощью инструментов Google Dorking, OWASP Amass и Gobuster .
# Passive Subdomain Enumeration using Google Dorking
site:*.redacted.com -www -www1 -blog
site:*.*.redacted.com -product
# Passive Subdomain Enumeration using OWASP Amass
amass enum -passive -d redacted.com -config config.ini -o amass_passive_subs.txt
# Subdomain Brute force using Gobuster
gobuster dns -d redacted.com -w wordlist.txt - show-cname - no-color -o gobuster_subs.txt
# Merging subdomains into one file
cat google_subs.txt amass_passive_subs.txt gobuster_subs.txt | anew subdomains.txt
# Enumerate CNAME records
./cname.sh -l subdomains.txt -o cnames.txt
# We can use HTTPX tool as well
httpx -l subdomains.txt -cname cnames.txt
# Probe for live HTTP/HTTPS servers
httpx -l subdomains.txt -p 80,443,8080,3000 -status-code -title -o servers_details.txt
Я начал анализировать файл cnames.txt и обнаружил один субдомен, указывающий на две разные записи CNAME. Я запустил команду dig на поддомене и получил подписки,
dig next.redacted.com CNAME
DNS query for CNAME record
Я начал анализировать файл server_details.txt на наличие интересного и нашел эту строку. Обратите внимание на код состояния и название веб-сайта.
https://next.redacted.com [500] [246] [Fastly error: unknown domain next.redacted.com]
В большинстве случаев мы не можем взять на себя службу Fastly. Например, ниже случай,

Но если домен еще не занят другим клиентом, мы можем потребовать домен и полностью захватить субдомен.
ПОДТВЕРЖДЕНИЕ УЯЗВИМОСТИ
Я зашел на официальный сайт Fastly и выполнил следующие шаги:
1. Я создал учетную запись на fastly.com , используя временную почту.
2. Войдите в свою панель управления Fastly и нажмите кнопку «Создать службу доставки».
3. Введите имя целевого поддомена (next.redacted.com) и нажмите кнопку «Добавить».
Я ожидал появления сообщения об ошибке («домен уже занят другим клиентом»), но сообщения об ошибке не было. Меня перенаправили на следующую страницу «Страница хостов». Я был удивлен.

ЭТАПЫ СОЗДАНИЯ POC
Как только уязвимость была подтверждена, я вошел на свой сервер VPS и создал каталог под названием «хостинг». Затем в каталоге «хостинг» создается простой файл HTML с именем «index.html».
mkdir hosting
cd hosting
nano index.html
<!DOCTYPE html>
<html>
<head><title>STO PoC</title></head>
<body>
<h1>ValluvarSploit PoC</h1>
</body>
</html>
python3 -m http.server 80

Через несколько секунд я открыл новое окно браузера и посетил «http://next.redacted.com/index.html" страница. Мой файл PoC был успешно обработан. Я написал подробный отчет и отправил его на HackerOne.

ОБУЧЕНИЕ ПО МОНИТОРИНГУ ЖУРНАЛОВ СЕРВЕРА
Я поддерживал свою службу Fastly в течение 3 дней и контролировал журналы сервера на наличие конфиденциальной информации. Было забавно наблюдать за другими методологиями охотников за ошибками.

НАГРАДА
Мой отчет был рассмотрен как уязвимость ВЫСОКОЙ степени серьезности, и в течение 10 дней было вознаграждено 2 000 долларов США.

ОСНОВНЫЕ ВЫВОДЫ
1. Пересматривайте свои старые цели не реже одного раза в 6 месяцев.
2. Перечисление поддоменов является ключевым. Перечислите поддомены как можно больше.
3. Не сдавайтесь.
Спасибо, что нашли время прочитать мою запись.
Следите за мной в:
Твиттер