
Ferramenta de segurança para encontrar parâmetros potencialmente vulneráveis de Server Side Request Forgery (SSRF).
Scanner de segurança (agora com IA 🤖) para encontrar potenciais parâmetros de Server Side Request Forgery (SSRF) na sua aplicação web. O See-SURF não só ajuda a detetar potenciais parâmetros SSRF, como também ajuda a validá-los, protegendo a sua aplicação contra comprometimento de dados do sistema e do utilizador.

Por favor, cite se utilizar este software nos seus artigos de pesquisa, artigos, etc.
@software{Agrawal_See-SURF_Detect_SSRF_2019,
author = {Agrawal, Vaibhav},
month = jul,
title = {{See-SURF: Detect SSRF security vulnerability}},
url = {https://github.com/In3tinct/See-SURF},
version = {2.0.0},
year = {2019}
}
Reconhecimento Automatizado: Crawler multi-thread que recolhe e analisa dados para identificar potenciais parâmetros SSRF usando correspondência regex forte (ex.: correspondendo palavras-chave como url, website ou endereços IP). Suporta autenticação baseada em cookies para varrer endpoints atrás de páginas de login.
Integração com Burp Suite: Analisa perfeitamente sitemaps do Burp Suite (.xml) para descobrir uma gama maior de parâmetros antes da varredura.
Validação e Exploração: A nova integração de IA inclui deteção potenciada por IA através de fornecedores como Google Gemini e OpenAI, analisando cabeçalhos de resposta e gerando payloads personalizados, um mecanismo de pivô inteligente para atacar serviços internos como AWS Metadata, e validação automatizada de vulnerabilidades para confirmar a fuga de dados sensíveis (para SSRF Refletido/Não-cego).
Para Deteção de SSRF Cego: Deteção Out-of-Band (OOB) integrada usando Webhook.site (por defeito) ou um domínio fornecido pelo utilizador para identificar vulnerabilidades onde o servidor não retorna uma resposta direta.

git clone https://github.com/In3tinct/See-SURF.git
cd See-SURF/
pip3 install -r requirements.txt
python3 see-surf.py -H https://www.target.com
# Usando Google Gemini
python3 see-surf.py -H http://vulnerable-site.com -p google -m gemini-1.5-flash --api-key YOUR_KEY
# Usando OpenAI GPT-4
python3 see-surf.py -H http://vulnerable-site.com -p openai -m gpt-4 -a YOUR_KEY
# Usando Ollama local
python3 see-surf.py -H http://vulnerable-site.com -p ollama -m llama3
python3 see-surf.py -H https://www.target.com -c "cookie_name1=value1 cookie_name2=value2"
python3 see-surf.py -H https://www.google.com -c cookie_name1=value1 cookie_name2=value2 -b burp_file.xml
-H Nome do host/endereço IP a varrer
-c Cookies para varredura autenticada, separados por espaço (alguns sites usam múltiplos cookies para rastreio de sessão)
-p Fornecedor de IA: ollama (para inferência local), gemini, OpenAI chatgpt, Anthropic claude
-m Nome específico do modelo (ex.: gemini-1.5-flash, gpt-4o, llama3).
-a Chave API para o fornecedor selecionado (pode também ser definida como variável de ambiente API_KEY).
-e Para testar pedidos OOBE de Blind-SSRF com o seu domínio externo personalizado no formato http://google.com, caso contrário será usado webhook.site por defeito.
-b (Opcional mas recomendado) - Extrair o pedido usando o mapa do site do burpsuite, exportar o ficheiro do mapa do site e fornecê-lo ao see-surf como entrada (ver funcionalidades detalhadas sobre como fazer).
-v (Opcional) Por defeito, o modo normal está ligado, com um interruptor verbose veria o mesmo parâmetro vulnerável em diferentes endpoints. O mesmo parâmetro pode não estar sanitizado em todos os lugares. Mas o modo verbose gera muito ruído.
[-] Opção -b O mapa do site do Burp mostra as informações que o Burp recolhe enquanto explora a sua aplicação alvo, como URLs recolhidos, etc. Forneça ficheiros de mapa do site do burp para uma melhor descoberta de potenciais parâmetros SSRF. O script primeiro analisa o ficheiro do burp e tenta identificar potenciais parâmetros e depois executa o crawler incorporado no mesmo.
Navegue pelo alvo com o seu burpsuite a correr em segundo plano, faça alguns pedidos GET/POST, quantos mais melhor. Depois vá a target, clique com o botão direito -> "Save selected Items" e guarde. Forneça ao script da seguinte forma.

Descoberta: O script percorre o alvo à procura de links <a> e inputs de <form>, ou analisa um ficheiro de mapa do site do Burp.
Correspondência de Parâmetros: Procura por palavras-chave nos nomes dos parâmetros (ex.: url, redirect, dest) ou padrões de URL nos valores.
Sondagem com Canário (Não-cego): Primeiro tenta obter http://example.com. Se a assinatura "Example Domain" for encontrada na resposta, levanta um potencial SSRF Refletido/Não-cego.
Impressão Digital e Exploração por IA (Não-cego): Se a IA estiver ativada, analisa os cabeçalhos do servidor e a stack tecnológica e gera payloads internos específicos (AWS, etc.).
Validação (Não-cego): A IA revê o resultado da resposta do ataque para verificar se os dados devolvidos são realmente informações sensíveis ou internas, reduzindo falsos positivos.
Sondagem OOBE (Cego): Para cada potencial parâmetro, gera um payload único do Webhook.site. Depois consulta a API do Webhook para confirmar se o servidor alvo fez um pedido externo.
Use o See-SURF para varrer alvos com consentimento mútuo prévio. É da responsabilidade do utilizador final e o desenvolvedor não assume qualquer responsabilidade nem se responsabiliza por qualquer uso indevido ou dano causado por este programa. Utilize esta ferramenta apenas para fins educacionais ou em domínios para os quais tenha permissão explícita para testar. Utilize por sua conta e risco.
GNUV3 © [In3tinct]