Fastly Subdomain Takeover $ 2.000
QUEM SOU EU
Meu nome é Alexandr Thangavel, também conhecido como ValluvarSploit, um caçador e treinador de insetos em tempo integral. Eu amo reconhecimento. Sou o fundador e CEO da ValluvarSploit Security. Na ValluvarSploit Security, estamos oferecendo treinamento de Bug Bounty em uma sessão online individual. Para mais informações, consulte nossa página no LinkedIn.
OBJETIVO
Hoje, vou compartilhar como descobri a vulnerabilidade de aquisição de subdomínio Fastly e ganhar minha recompensa de quatro dígitos. Vamos começar.
HISTÓRIA
Isso foi iniciado em 2 de outubro de 2022, domingo. O dia começou como de costume. Acordei às 6h, terminei o trabalho de rotina, verifiquei meu saldo de dados móveis (1,3 GB restantes), habilitei meu Mobile Hotspot, conectei meu laptop e retomei a busca em um programa privado. Passei algumas horas no aplicativo de destino, mas não encontrei nada, então fiz uma pequena pausa. Eu costumava revisitar meus antigos programas particulares pelo menos uma vez a cada seis meses. Então, revisei meus convites privados, escolhi um programa antigo e comecei a realizar a enumeração de subdomínios (vamos chamar nosso destino de redacted.com).
COMPROMISSO DE SUBDOMÍNIO
O controle de subdomínio ocorre quando um invasor assume o controle de um subdomínio de um domínio. Isso acontece devido a erros/configurações incorretas do DNS.
ENUMERAÇÃO DE SUBDOMÍNIO
Comecei a enumeração de subdomínios com as ferramentas Google Dorking, OWASP Amass e 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
Comecei a analisar o arquivo cnames.txt e encontrei um subdomínio que apontava para dois registros CNAME diferentes. Executei o comando dig no subdomínio e obtive os seguintes,
dig next.redacted.com CNAME
DNS query for CNAME record
Comecei a analisar o arquivo servers_details.txt em busca de coisas interessantes e encontrei esta linha. Observe o código de status e o título do site.
https://next.redacted.com [500] [246] [Fastly error: unknown domain next.redacted.com]
Na maioria dos casos, não podemos assumir o serviço Fastly. Por exemplo caso abaixo,

Mas se o domínio ainda não estiver ocupado por outro cliente, podemos reivindicar o domínio e assumir o controle do subdomínio completamente.
CONFIRMANDO A VULNERABILIDADE
Fui ao site oficial do Fastly e executei as etapas abaixo:
1. Criei uma conta no fastly.com usando um e-mail temporário.
2. Entrei no meu Fastly Dashboard e cliquei no botão “Create a Delivery Service”.
3. Digite o nome do subdomínio de destino (next.redacted.com) e clique no botão Adicionar.
Eu esperava que aparecesse a mensagem de erro (“o domínio já está sendo usado por outro cliente”), mas não houve mensagem de erro. Fui redirecionado para a próxima página “Página de hosts”. Eu estava surpreso.

ETAPAS DE CRIAÇÃO DO POC
Assim que a vulnerabilidade foi confirmada, entrei no meu servidor VPS e criei um diretório chamado “hosting”. Em seguida, dentro do diretório “hosting”, criei um arquivo HTML simples chamado “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

Após alguns segundos, abri uma nova janela do navegador e visitei “http://next.redacted.com/index.html" página. Meu arquivo PoC foi renderizado com sucesso. Escrevi um relatório detalhado e o enviei no HackerOne.

APRENDIZAGEM MONITORANDO LOGS DO SERVIDOR
Mantive meu serviço Fastly em execução por 3 dias e monitorei os logs do servidor em busca de informações confidenciais. Foi divertido observar a metodologia de outros caçadores de bugs.

RECOMPENSA
Meu relatório foi classificado como uma vulnerabilidade de gravidade ALTA e recompensado com $ 2.000 em 10 dias.

CONCLUSÕES PRINCIPAIS
1. Revise seus antigos alvos pelo menos uma vez a cada 6 meses.
2. A enumeração do subdomínio é fundamental. Enumere os subdomínios o máximo possível.
3. Não desista.
Obrigado por reservar um tempo para ler meu artigo.
Siga-me no: