Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Explorador Supabase

Ferramenta de auditoria de seguranca para projetos que utilizam Supabase. Detecta credenciais publicas (URL + Anon Key) expostas em sites e testa se as politicas de seguranca (RLS) estao configuradas corretamente.

Requisitos

  • Python 3.8+
  • Google Chrome (apenas para modo --browser)

Instalacao

pip install requests

Para o modo browser (opcional):

pip install selenium webdriver-manager

Como usar

Modo estatico (padrao)

Analisa o HTML e arquivos JS do site buscando credenciais com regex:

python explorador_supabase.py https://alvo.com

Modo browser (Selenium)

Abre um Chrome real e monitora o trafego de rede para capturar credenciais em tempo real:

python explorador_supabase.py https://alvo.com --browser

Ao abrir o navegador, navegue pelo site (faca login, clique em paginas) para forcar requisicoes ao Supabase. O script monitora por 60 segundos.

URL manual

Se voce ja sabe a URL do projeto Supabase, pode fornece-la diretamente:

python explorador_supabase.py https://alvo.com --url https://projetoxxx.supabase.co

Como funciona

Fase 1 - Descoberta de credenciais

O script procura duas informacoes:

Credencial O que e Exemplo
URL Endpoint do projeto Supabase https://abc123.supabase.co
Anon Key Chave publica JWT (comeca com eyJ...) eyJhbGciOiJIUzI1NiIs...

Modo estatico - Busca no HTML principal e em cada arquivo JS referenciado usando padroes como:

  • supabaseUrl: "..." / supabaseKey: "..."
  • NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY
  • createClient("url", "key")
  • Qualquer string https://*.supabase.co ou JWT eyJ...

Modo browser - Intercepta requisicoes HTTP via Chrome DevTools Protocol (Performance Logs) e extrai:

  • Key: do header apikey ou Authorization: Bearer ...
  • URL: dos paths /rest/v1, /auth/v1, /storage/v1, /realtime/v1, /functions/v1, ou do host de qualquer requisicao que contenha header apikey

Fase 2 - Teste de vulnerabilidade

Com o par URL + Key em maos, o script executa dois testes:

Teste 1 - Exposicao de estrutura (OpenAPI)

Acessa GET /rest/v1/ para verificar se o schema OpenAPI esta exposto. Se sim, lista todas as tabelas e views do banco.

Teste 2 - Leitura de dados (RLS)

Tenta ler registros de cada tabela com GET /rest/v1/{tabela}?select=*&limit=1. Se retornar dados, a tabela esta sem RLS (Row Level Security) ou com politicas permissivas.

Resultados possiveis

Resultado Significado
[CRITICO] Dados acessiveis publicamente - RLS ausente ou mal configurado
[PERIGO] Estrutura do banco exposta (nomes de tabelas/colunas visiveis)
[OK] Tabela protegida por RLS ou estrutura oculta
[SEGURO] Nenhum dado ou estrutura acessivel publicamente

Aviso legal

Esta ferramenta destina-se exclusivamente a testes de seguranca autorizados. Use apenas em projetos dos quais voce é proprietario ou possui autorizacao explicita para testar. O uso indevido pode violar leis locais e os termos de servico do Supabase.

About

Ferramenta de auditoria de segurança para projetos Supabase. Detecta credenciais expostas e verifica configurações de RLS (Row Level Security).

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages