hunt-spa-api
Faz seu agente descobrir APIs ocultas de aplicativos web e testá-las. É útil para encontrar falhas de segurança que podem expor dados.
O que ela faz
Esta ferramenta ajuda a encontrar a 'linguagem secreta' (API) que um site usa para se comunicar com seu servidor. Ela procura por essa linguagem nos arquivos do site e verifica se há falhas de segurança, como acesso não autorizado.
Quando usar
- ✓Quando um site parece ser uma página única e carrega muitos arquivos de código.
- ✓Quando você vê nomes de domínio como 'admin', 'console' ou 'api'.
- ✓Quando a página de login usa sistemas como Google ou Facebook para entrar.
Exemplo do que pedir para a IA
“Encontre a API do site exemplo.com e verifique se há falhas de segurança.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta baixa os arquivos de código do site, procura por endereços e comandos da API escondidos neles e depois tenta acessar esses comandos sem permissão para ver se o site se protege corretamente.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill hunt-spa-apiOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-spa-api/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
⚠️ USO AUTORIZADO APENAS Esta habilidade é apenas para fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.
Portão de confirmação obrigatório Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:
- Peça ao usuário para declarar o URL exato, IP, conta ou recurso alvo.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- Aguarde a confirmação explícita na conversa atual.
Sem essa confirmação, permaneça apenas em modo de leitura e forneça orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
Quando usar esta habilidade
Ative quando:
- Um host alvo retornar um pequeno shell HTML + grandes pacotes
/static/js/*.jsou/_next/static/*(SPA React/Vue/Angular/Next/Svelte) - Você vir um subdomínio chamado
console,app,dashboard,portal,admin,panel,manage,internal - A recon encontrar qualquer host
*api*,*-api*,api.* - Uma página de login for controlada por OAuth/SSO (a autenticação do frontend não diz nada sobre se a API impõe autenticação)
O insight principal: uma SPA é um cliente para uma API backend e envia o mapa completo dessa API — hosts, rotas, às vezes chaves — para quem visualizar o código-fonte. A página de login protegida não diz nada sobre se a API por trás dela verifica tokens. A autenticação é frequentemente imposta no gateway/login e ausente em um grupo de rotas da API.
NÃO pule isso porque "o aplicativo precisa de login" — é exatamente quando isso compensa.
A jogada (5 passos)
1. Baixar o shell + enumerar os pacotes
curl -s https://console.target.com/ -o index.html
# React/CRA:
grep -oE '/static/js/[^"]+\.js' index.html
# Next.js:
grep -oE '/_next/static/[^"]+\.js' index.html
# generic:
grep -oiE 'src="[^"]+\.js[^"]*"' index.html
Baixe todos os pacotes (eles podem ter vários MB — tudo bem, são todos dados de rota):
mkdir bundles
for j in $(grep -oE '/static/js/[^"]+\.js' index.html | sort -u); do
curl -s "https://console.target.com$j" -o "bundles/$(echo "$j"|tr '/' '_')"
done
2. Coletar hosts, rotas e segredos da API dos pacotes
B=bundles/*.js
# Backend API hosts (incl. dev/beta/staging variants — often weaker auth)
grep -ohiE 'https://[a-z0-9.-]*(api|console|backend|service)[a-z0-9.-]*\.target\.com[a-z0-9/_-]*' $B | sort -u
# Versioned API base paths
grep -ohiE '/api/v[0-9]+/?' $B | sort -u
# Route literals — minified bundles store routes as STRING segments, not full URLs.
# Grep for quoted "resource/action" strings:
grep -ohiE '"[a-z0-9_-]+/[a-z0-9_/-]+"' $B | tr -d '"' \
| grep -iE '(login|user|account|order|billing|invoice|payment|deal|report|token|otp|password|reset|admin|profile|auth|upload|export|role|permission|dashboard|wallet|finance|sales)' | sort -u
# Secrets (validate before trusting — most AIza keys are Maps/analytics, not Auth)
grep -ohiE '(AIza[0-9A-Za-z_-]{35}|AKIA[0-9A-Z]{16}|sk_live_[0-9A-Za-z]+|eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}|apiKey["'"'"']?\s*[:=]\s*["'"'"'][^"'"'"']+)' $B | sort -u
Observação: minificadores armazenam rotas como segmentos de string concatenados (por exemplo, "account/payment/list"), NÃO URLs /api/v2/... completos — então um grep ingênuo /api/v* não retorna nada. Use grep para as strings de rota com palavras de recurso e adicione a base você mesmo.
Chunks carregados preguiçosamente (assíncronos) — não pare nos pacotes referenciados pelo HTML. SPAs CRA/webpack referenciam apenas runtime+main+vendor em index.html; chunks de rota assíncronos numerados são nomeados dentro do mapa de chunks de main.js e carregados em tempo de execução, então usar grep apenas /static/js/*.js do shell trunca a cobertura de rota para chunks eager.
grep -oE '[0-9]+:"[a-f0-9]+"' bundles/*main*.js # {chunkId:"hash"} pairs
# reconstruct /static/js/<id>.<hash>.chunk.js, download each, re-run route/host/secret harvest
# asset-manifest.json (if present) lists them all -> hunt-source-leak
3. Estabelecer um CONTROLE — encontrar um endpoint que ESTEJA restrito
Antes de declarar qualquer coisa como vulnerável, envie uma solicitação não autenticada para um endpoint que você espera que seja protegido e capture como é uma rejeição correta:
curl -s -X POST https://api.target.com/api/users -H 'Content-Type: application/json' -d '{}'
# seguro → {"error":"Missing or invalid authorization header"} ou HTTP 401
…
Perguntas frequentes
Por que eu faria isso?
Para entender como um site funciona por dentro e encontrar possíveis brechas de segurança que poderiam ser exploradas por pessoas mal-intencionadas.
Preciso de permissão para usar essa ferramenta?
Sim, é crucial ter permissão explícita e por escrito do dono do sistema antes de usar esta ferramenta em qualquer site. O uso sem autorização é ilegal.
O que é uma API?
API é como um garçom em um restaurante. Você (o site) pede algo (dados ou uma ação), e a API (o garçom) leva seu pedido para a cozinha (o servidor) e traz a resposta de volta para você.
Detalhes
Descrição original do autor
Discover a single-page-app's hidden backend API from its public JS bundle, then test that API for broken access control / missing authentication.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3288
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC