Быстрое поглощение субдомена $2000

Nov 28 2022
Bug Bounty — с нуля до HERO
WHOAMI Меня зовут Александр Тангавел, также известный как ValluvarSploit, я работаю охотником за ошибками и тренером. Я люблю разведку.

КТО Я

Меня зовут Александр Тангавел, также известный как 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) и нажмите кнопку «Добавить».

Я ожидал появления сообщения об ошибке («домен уже занят другим клиентом»), но сообщения об ошибке не было. Меня перенаправили на следующую страницу «Страница хостов». Я был удивлен.

Заявленный домен на Fastly

ЭТАПЫ СОЗДАНИЯ 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

Конфигурация VPS

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

Доказательство концепции

ОБУЧЕНИЕ ПО МОНИТОРИНГУ ЖУРНАЛОВ СЕРВЕРА

Я поддерживал свою службу Fastly в течение 3 дней и контролировал журналы сервера на наличие конфиденциальной информации. Было забавно наблюдать за другими методологиями охотников за ошибками.

Мониторинг журналов сервера для развлечения

НАГРАДА

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

Награда

ОСНОВНЫЕ ВЫВОДЫ

1. Пересматривайте свои старые цели не реже одного раза в 6 месяцев.
2. Перечисление поддоменов является ключевым. Перечислите поддомены как можно больше.
3. Не сдавайтесь.

Спасибо, что нашли время прочитать мою запись.

Следите за мной в:

Твиттер

LinkedIn

Из статей Infosec: Каждый день в Infosec появляется много информации, за которой трудно уследить. Подпишитесь на наш еженедельный информационный бюллетень , чтобы БЕСПЛАТНО получать все последние тенденции информационной безопасности в виде 5 статей, 4 тем, 3 видео, 2 репозиториев и инструментов GitHub и 1 оповещения о вакансиях!