Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
skipfish — Scanner de segurança de aplicações web criado por lcamtuf para o Google - Mirror Não Oficial | Kitploit
Ferramentas/GitHubGitHub/spinkham/skipfish
ReconhecimentoScanners de VulnerabilidadesScanners de Vulnerabilidades WebAnálise Dinâmica (Sandboxing)Exploração de Aplicações WebColeta de InformaçõesSegurança WebFuzzingTestes de PenetraçãoRastreador
GitHubspinkham/skipfish
87216651há 13 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

skipfish

Scanner de segurança de aplicações web criado por lcamtuf para o Google - Mirror Não Oficial

Ver RepositórioSite
Compartilhar

=========================================== skipfish - scanner de segurança de aplicações web

http://code.google.com/p/skipfish/

  • Escrito e mantido por:

    Michal Zalewski [email protected] Niels Heinen [email protected] Sebastian Roschke [email protected]

  • Copyright 2009 - 2012 Google Inc, todos os direitos reservados.

  • Lançado sob os termos e condições da Licença Apache, versão 2.0.


  1. O que é o skipfish?

Skipfish é uma ferramenta ativa de reconhecimento de segurança de aplicações web. Ela prepara um sitemap interativo para o site alvo através de um rastreamento recursivo e sondagens baseadas em dicionários. O mapa resultante é então anotado com a saída de uma série de verificações de segurança ativas (mas, espera-se, não disruptivas). O relatório final gerado pela ferramenta tem a intenção de servir como base para avaliações profissionais de segurança de aplicações web.


  1. Por que devo me preocupar com esta ferramenta em particular?

Uma série de ferramentas comerciais e de código aberto com funcionalidades análogas está prontamente disponível (por exemplo, Nikto, Nessus); use a que melhor se adequar a você. Dito isso, o skipfish tenta resolver alguns dos problemas comuns associados a scanners de segurança web. Vantagens específicas incluem:

  • Alta performance: 500+ requisições por segundo contra alvos responsivos na Internet, 2000+ requisições por segundo em redes LAN/MAN e 7000+ requisições contra instâncias locais foram observadas, com uma pegada muito modesta de CPU, rede e memória. Isso pode ser atribuído a:

    • Multiplexação de thread única, modelo de processamento de dados e I/O de rede totalmente assíncrono, que elimina ineficiências de gerenciamento de memória, escalonamento e IPC presentes em alguns clientes multithread.

  • Recursos avançados de HTTP/1.1, como requisições de intervalo, compressão de conteúdo e conexões keep-alive, além de limitação forçada do tamanho da resposta, para manter a sobrecarga de rede sob controle.

  • Cache inteligente de respostas e heurísticas avançadas de comportamento do servidor são usadas para minimizar o tráfego desnecessário.

  • Implementação em C puro, orientada a desempenho, incluindo uma pilha HTTP personalizada.

  • Facilidade de uso: o skipfish é altamente adaptável e confiável. O scanner possui:

    • Reconhecimento heurístico de esquemas obscuros de manipulação de parâmetros de caminho e consulta.

    • Tratamento elegante de sites com múltiplos frameworks, onde certos caminhos obedecem a semânticas completamente diferentes ou estão sujeitos a regras de filtragem diferentes.

    • Construção automática de lista de palavras com base na análise de conteúdo do site.

    • Recursos de varredura probabilística para permitir avaliações periódicas e com limite de tempo de sites arbitrariamente complexos.

    • Verificações de segurança bem projetadas: a ferramenta visa fornecer resultados precisos e significativos:

      • Dicionários artesanais oferecem excelente cobertura e permitem testes minuciosos de $keyword.$extension em um prazo razoável.

      • Sondagens diferenciais de três etapas são preferidas a verificações de assinatura para detectar vulnerabilidades.

      • Lógica estilo Ratproxy é usada para identificar problemas de segurança sutis: cross-site request forgery, cross-site script inclusion, mixed content, problemas de incompatibilidade de MIME e charset, diretivas de cache incorretas, etc.

      • As verificações de segurança incluídas são projetadas para lidar com cenários complicados: XSS armazenado (caminho, parâmetros, cabeçalhos), injeção cega de SQL ou XML ou injeção cega de shell.

      • Assinaturas de conteúdo estilo Snort que destacarão erros de servidor, vazamentos de informações ou aplicações web potencialmente perigosas.

      • O pós-processamento do relatório reduz drasticamente o ruído causado por quaisquer falsos positivos restantes ou truques de servidor, identificando padrões repetitivos.

  • Dito isso, o skipfish não é uma bala de prata e pode ser inadequado para certos propósitos. Por exemplo, ele não satisfaz a maioria dos requisitos descritos no WASC Web Application Security Scanner Evaluation Criteria (alguns deles de propósito, outros por necessidade); e, diferentemente da maioria dos outros projetos deste tipo, ele não vem com um extenso banco de dados de vulnerabilidades conhecidas para verificações do tipo banner.


    1. Muito curioso! Quais testes específicos estão implementados?

    Uma lista aproximada das verificações de segurança oferecidas pela ferramenta está descrita abaixo.

    • Falhas de alto risco (potencialmente levando ao comprometimento do sistema):

      • Injeção de consulta no servidor (incluindo vetores cegos, parâmetros numéricos).
      • Sintaxe explícita do tipo SQL em parâmetros GET ou POST.
      • Injeção de comando de shell no servidor (incluindo vetores cegos).
      • Injeção de XML / XPath no servidor (incluindo vetores cegos).
      • Vulnerabilidades de format string.
      • Vulnerabilidades de estouro de inteiros.
      • Locais que aceitam HTTP PUT.
    • Falhas de risco médio (potencialmente levando ao comprometimento de dados):

      • Vetores de XSS armazenado e refletido no corpo do documento (suporte mínimo a JS XSS).
      • Vetores de XSS armazenado e refletido via redirecionamentos HTTP.
      • Vetores de XSS armazenado e refletido via divisão de cabeçalho HTTP.
      • Directory traversal / LFI / RFI (incluindo vetores limitados).
      • POIs de arquivos variados (códigos-fonte do servidor, configurações, etc).
      • Vetores de inclusão de script e CSS fornecidos pelo atacante (armazenados e refletidos).
      • Vetores de inclusão de script e CSS externos não confiáveis.
      • Problemas de mixed content em recursos de script e CSS (opcional).
      • Formulários de senha enviados de ou para páginas não SSL (opcional).
      • Tipos MIME incorretos ou ausentes em renderizáveis.
      • Tipos MIME genéricos em renderizáveis.
      • Charsets incorretos ou ausentes em renderizáveis.
      • Informações conflitantes de MIME / charset em renderizáveis.
      • Diretivas de cache ruins em respostas que definem cookies.
    • Problemas de baixo risco (impacto limitado ou baixa especificidade):

      • Vetores de bypass de listagem de diretório.
      • Redirecionamento para URLs fornecidas pelo atacante (armazenado e refletido).
      • Conteúdo incorporado fornecido pelo atacante (armazenado e refletido).
      • Conteúdo incorporado externo não confiável.
      • Mixed content em subrecursos não scriptáveis (opcional).
      • Envio de formulários HTML de HTTPS -> HTTP (opcional).
      • Credenciais HTTP em URLs.
      • Certificados SSL expirados ou ainda não válidos.
      • Formulários HTML sem proteção XSRF.
      • Certificados SSL autoassinados.
      • Incompatibilidade de nome de host do certificado SSL.
      • Diretivas de cache ruins em conteúdo menos sensível.
    • Avisos internos:

      • Tentativas de busca de recursos com falha.
      • Limites de rastreamento excedidos.
      • Verificações de comportamento 404 com falha.
      • Filtragem IPS detectada.
      • Variações inesperadas de resposta.
      • Nós de rastreamento aparentemente mal classificados.
    • Entradas informacionais não específicas:

      • Informações gerais do certificado SSL.
      • Cookies HTTP que mudam significativamente.
      • Cabeçalhos Server, Via ou X-... em mudança.
      • Novas assinaturas 404.
      • Recursos que não podem ser acessados.
      • Recursos que exigem autenticação HTTP.
      • Links quebrados.
      • Erros de servidor.
      • Todos os links externos não classificados de outra forma (opcional).
      • Todos os e-mails externos (opcional).
      • Todos os redirecionadores de URL externos (opcional).
      • Links para protocolos desconhecidos.
      • Campos de formulário que não puderam ser autocompletados.
      • Formulários de entrada de senha (para força bruta externa).
      • Formulários de upload de arquivo.
      • Outros formulários HTML (não classificados de outra forma).
      • Nomes de arquivo numéricos (para força bruta externa).
      • Links fornecidos pelo usuário, caso contrário renderizados em uma página.
      • Tipo MIME incorreto ou ausente em conteúdo menos significativo.
      • Tipo MIME genérico em conteúdo menos significativo.
      • Charset incorreto ou ausente em conteúdo menos significativo.
      • Informações conflitantes de MIME / charset em conteúdo menos significativo.
      • Convenções de passagem de parâmetros do tipo OGNL.

    Junto com uma lista de problemas identificados, o skipfish também fornece visões gerais dos tipos de documentos e tipos de problemas encontrados; e um sitemap interativo, com nós descobertos por força bruta denotados de forma distinta.

    NOTA: Como uma decisão de design consciente, o skipfish não reclamará redundantemente sobre problemas altamente inespecíficos, incluindo, mas não se limitando a:

    • Cookies não httponly ou não seguros,
    • Formulários não HTTPS ou com autocomplete habilitado,
    • Comentários HTML detectados em uma página,
    • Divulgação de caminho do sistema de arquivos em mensagens de erro,
    • Divulgação da versão do servidor ou framework,
    • Servidores que suportam requisições TRACE ou OPTIONS,
    • Mera presença de certas tecnologias, como WebDAV.

    A maioria desses aspectos é fácil de inspecionar em um relatório, se desejado - por exemplo, todos os formulários HTML são listados separadamente, assim como novos cookies ou cabeçalhos HTTP interessantes - e a expectativa é que o auditor possa optar por fazer certas recomendações de design com base nesses dados, quando apropriado. Dito isso, essas ocorrências não são destacadas como uma falha de segurança específica.


    1. Tudo bem, quero experimentar. O que preciso saber?

    Primeiro e acima de tudo, por favor, não seja mau. Use o skipfish apenas contra serviços que você possui ou para os quais tem permissão de testar.

    Tenha em mente que todos os tipos de teste de segurança podem ser disruptivos. Embora o scanner seja projetado para não realizar ataques maliciosos, ele pode acidentalmente interferir nas operações do site. Você deve aceitar o risco e planejar adequadamente. Execute o scanner contra instâncias de teste quando possível e esteja preparado para lidar com as consequências se algo der errado.

    Observe também que a ferramenta é destinada a profissionais de segurança e é de natureza experimental. Ela pode retornar falsos positivos ou perder problemas de segurança óbvios - e mesmo quando opera perfeitamente, ela simplesmente não foi projetada para ser um aplicativo do tipo aponte e clique. Não aceite sua saída como verdade absoluta.

    Executar a ferramenta contra sites de demonstração fornecidos por fornecedores não é uma boa maneira de avaliá-la, pois eles geralmente aproximam vulnerabilidades de forma muito imperfeita; não fizemos nenhum esforço para acomodar esses casos.

    Por último, o scanner simplesmente não foi projetado para lidar com servidores HTTP maliciosos ou com mau comportamento - e não oferece garantias de comportamento seguro (ou sensato) nesses casos.


    1. Como executar o scanner?

    Para compilá-lo, basta descompactar o arquivo e tentar make. Provavelmente, você precisará instalar o libidn primeiro.

    Em seguida, você precisa ler as instruções fornecidas em doc/dictionaries.txt para selecionar o arquivo de dicionário correto e configurá-lo corretamente. Esta etapa tem um impacto profundo na qualidade dos resultados da varredura posteriormente, então não a pule.

    Depois de selecionar o dicionário, você pode usar -S para carregar esse dicionário, e -W para especificar um arquivo inicialmente vazio para quaisquer palavras-chave recém-aprendidas específicas do site (que serão úteis em avaliações futuras):

    $ touch new_dict.wl $ ./skipfish -o output_dir -S existing_dictionary.wl -W new_dict.wl
    http://www.example.com/some/starting/path.txt

    Você pode usar -W- se não quiser armazenar palavras-chave aprendidas automaticamente em lugar algum.

    Observe que você pode fornecer mais de uma URL inicial, se desejar; todas elas serão rastreadas. Também é possível ler URLs de um arquivo, usando a seguinte sintaxe:

    $ ./skipfish [...outras opções...] @../path/to/url_list.txt

    A ferramenta exibirá algumas estatísticas úteis enquanto a varredura estiver em andamento. Você também pode alternar para uma lista de requisições HTTP em andamento pressionando enter.

    No exemplo acima, o skipfish irá escanear todo o www.example.com (incluindo serviços em outras portas, se vinculados a partir da página principal), e escreverá um relatório em output_dir/index.html. Você pode então visualizar este relatório com seu navegador favorito (o JavaScript deve estar habilitado; e por causa de melhorias recentes de segurança do file:/// em certos navegadores, você pode precisar acessar os resultados via HTTP). O arquivo index.html é estático; os resultados reais são armazenados como uma hierarquia de arquivos JSON, adequados para processamento por máquina ou diferentes frontends de apresentação, se necessário. Além disso, uma lista de todas as URLs descobertas será salva em um único arquivo, pivots.txt, para fácil pós-processamento.

    Um script simples complementar, sfscandiff, pode ser usado para calcular um delta para duas varreduras executadas contra o mesmo alvo com os mesmos sinalizadores. O relatório mais recente será anotado de forma não destrutiva, adicionando fundo vermelho a todos os nós novos ou alterados; e fundo azul a todos os problemas novos ou alterados encontrados.

    Alguns sites podem exigir autenticação, para a qual nosso suporte é descrito em doc/authentication.txt. Na maioria dos casos, você desejará usar o método de autenticação de formulário, que é capaz de detectar sessões quebradas para reautenticar.

    Uma vez autenticado, certas URLs no site podem encerrar sua sessão; você pode combater isso de duas maneiras: usando a opção -N, que faz com que o scanner rejeite tentativas de definir ou excluir cookies; ou com o parâmetro -X, que impede que URLs correspondentes sejam buscadas:

    $ ./skipfish -X /logout/logout.aspx ...outros parâmetros...

    A opção -X também é útil para acelerar suas varreduras, excluindo /icons/, /doc/, /manuals/ e outros locais padrão e mundanos ao longo dessas linhas. Em geral, você pode usar -X e -I (rastrear apenas URLs que contenham uma substring) para limitar o escopo de uma varredura da maneira que desejar - incluindo restringi-la apenas a um protocolo e porta específicos:

    $ ./skipfish -I http://example.com:1234/ ...outros parâmetros...

    Uma função relacionada, -K, permite que você especifique nomes de parâmetros para não fuzzar (útil para aplicações que colocam IDs de sessão na URL, para minimizar ruído).

    Outra opção de escopo útil é -D - permitindo que você especifique hosts ou domínios adicionais a serem considerados dentro do escopo para o teste. Por padrão, todos os hosts que aparecem nas URLs da linha de comando são adicionados à lista - mas você pode usar -D para ampliar essas regras, por exemplo:

    $ ./skipfish -D test2.example.com -o output-dir http://test1.example.com/

    ...ou, para uma correspondência curinga de domínio, use:

    $ ./skipfish -D .example.com -o output-dir http://test1.example.com/

    Em alguns casos, você não deseja realmente rastrear um domínio de terceiros, mas confia no proprietário desse domínio o suficiente para não se preocupar com a inclusão de conteúdo entre domínios a partir desse local. Para suprimir avisos, você pode usar a opção -B, por exemplo:

    $ ./skipfish -B .google-analytics.com -B .googleapis.com ...outros parâmetros...

    Por padrão, o skipfish envia cabeçalhos HTTP minimalistas para reduzir a quantidade de dados trocados pela rede; no entanto, alguns sites examinam strings User-Agent ou a ordem dos cabeçalhos para rejeitar clientes não suportados. Nesse caso, você pode usar -b ie, -b ffox ou -b phone para imitar um dos dois navegadores populares (ou iPhone).

    Quando se trata de personalizar suas requisições HTTP, você também pode usar a opção -H para inserir quaisquer cabeçalhos adicionais e não padrão; ou -F para definir um mapeamento personalizado entre um host e um IP (ignorando o resolvedor). Este último recurso é particularmente útil para serviços ainda não lançados ou legados.

    Alguns sites podem ser grandes demais para serem escaneados em um prazo razoável. Se o site apresentar tarpits bem definidos - por exemplo, 100.000 perfis de usuário quase idênticos como parte de uma rede social - esses locais específicos podem ser excluídos com -X ou -S. Em outros casos, você pode precisar recorrer a outras configurações: -d limita a profundidade do rastreamento a um número especificado de subdiretórios; -c limita o número de filhos por diretório; -x limita o número total de descendentes por ramo da árvore de rastreamento; e -r limita o número total de requisições a enviar em uma varredura.

    Uma opção interessante está disponível para avaliações repetidas: -p. Ao especificar uma porcentagem entre 1 e 100%, é possível dizer ao rastreador para seguir menos de 100% de todos os links e tentar menos de 100% de todas as entradas do dicionário. Isso - naturalmente - limita a completeza de uma varredura, mas, diferentemente da maioria das outras configurações, faz isso de forma equilibrada e não determinística. É extremamente útil quando você está configurando avaliações periódicas com limite de tempo de sua infraestrutura. Outra opção relacionada é -q, que define a semente aleatória inicial para o rastreador para um valor especificado. Isso pode ser usado para reproduzir exatamente uma varredura anterior para comparar resultados. A aleatoriedade é mais fortemente utilizada no modo -p, mas também para tomar algumas outras decisões de gerenciamento de varredura em outros lugares.

    Alguns serviços particularmente complexos (ou quebrados) podem envolver um número muito alto de páginas idênticas ou quase idênticas. Embora essas ocorrências sejam por padrão esmaecidas no relatório, elas ainda consomem algum espaço na tela e levam um tempo para serem processadas no nível do JavaScript. Nesses casos extremos, você pode usar a opção -Q para suprimir totalmente a notificação de nós duplicados, antes que o relatório seja escrito. Isso pode lhe dar uma compreensão menos abrangente de como o site está organizado, mas não tem impacto na cobertura do teste.

    Em certas avaliações rápidas, você também pode não ter interesse em prestar nenhuma atenção particular à funcionalidade desejada do site - esperando explorar apenas segredos não vinculados. Nesse caso, você pode especificar -P para inibir toda a análise de HTML. Isso limita a cobertura e tira a capacidade do scanner de aprender novas palavras-chave olhando para o HTML, mas acelera o teste drasticamente. Outra opção similarmente incapacitante que reduz o risco de efeitos persistentes de uma varredura é -O, que inibe todas as etapas de análise e envio de formulários.

    Alguns sites que lidam com dados sensíveis do usuário se preocupam com SSL - e em fazer isso corretamente. O Skipfish pode opcionalmente ajudá-lo a descobrir cenários problemáticos de mixed content ou submissão de senhas - use a opção -M para ativar isso. O scanner reclamará sobre situações como scripts http:// sendo carregados em páginas https:// - mas ignorará cenários sem risco, como imagens.

    Da mesma forma, certos sites pedantes podem se importar com casos em que o cache é restringido no nível HTTP/1.1, mas nenhuma diretiva de cache HTTP/1.0 explícita é fornecida. Ao especificar -E na linha de comando, o skipfish registra todos esses casos cuidadosamente.

    Em algumas ocasiões, você deseja limitar as requisições por segundo para limitar a carga no servidor alvo (ou possivelmente ignorar a proteção DoS). O sinalizador -l pode ser usado para definir esse limite, e o valor fornecido é a quantidade máxima de requisições por segundo que você deseja que o skipfish execute.

    As varreduras normalmente não devem levar semanas. Em muitos casos, você provavelmente deseja limitar a duração da varredura para que ela se encaixe em uma determinada janela de tempo. Isso pode ser feito com o sinalizador -k, que permite que a quantidade de horas, minutos e segundos seja especificada no formato H:M:S. O uso deste sinalizador pode afetar a cobertura da varredura se o tempo limite da varredura ocorrer antes de testar todas as páginas.

    Por último, em algumas avaliações que envolvem sites autocontidos sem conteúdo extenso do usuário, o auditor pode se importar com quaisquer e-mails externos ou links HTTP vistos, mesmo que não tenham impacto de segurança imediato. Use a opção -U para ter esses registrados.

    O gerenciamento de dicionários é um tópico especial e, como mencionado, é abordado em mais detalhes em doc/dictionaries.txt. Por favor, leia esse arquivo antes de prosseguir. Algumas das opções relevantes incluem -S e -W (abordadas anteriormente), -L para suprimir o aprendizado automático, -G para limitar o tamanho do depositário de palavras-chave, -R para descartar entradas antigas do dicionário e -Y para inibir o fuzzing caro de $keyword.$extension.

    O Skipfish também possui um mecanismo de autocompletar formulários para maximizar a cobertura da varredura. Os valores devem ser não maliciosos, pois não se destinam a implementar verificações de segurança - mas sim, para passar pela lógica de validação de entrada. Você pode definir regras adicionais ou substituir as existentes com a opção -T (-T nome_do_campo_do_formulário=valor_do_campo, por exemplo, -T login=test123 -T password=test321 - embora observe que -C e -A são um método muito melhor de fazer login).Há também um punhado de opções relacionadas a desempenho. Use -g para definir o número máximo de conexões a serem mantidas, globalmente, para todos os alvos (é sensato manter isso abaixo de 50 ou mais para evitar sobrecarregar a pilha TCP/IP do seu sistema ou dos dispositivos NAT/firewall próximos); e -m para definir o limite por IP (experimente um pouco: 2-4 geralmente é bom para localhost, 4-8 para redes locais, 10-20 para alvos externos, 30+ para hosts muito lentos ou sem keep-alive). Você também pode usar -w para definir o timeout de E/S (ou seja, o skipfish esperará apenas um certo tempo para uma leitura ou gravação individual), e -t para definir o timeout total da requisição, para levar em conta sites realmente lentos ou rápidos.

    Por fim, -f controla o número máximo de erros HTTP consecutivos que você está disposto a ver antes de abortar a varredura; e -s define o comprimento máximo de uma resposta a ser buscada e analisada (respostas mais longas serão truncadas).

    Ao varrer sites grandes e com muitos elementos multimídia, você também pode querer especificar -e. Isso evita que documentos binários sejam mantidos na memória para fins de relatório, liberando bastante RAM.

    Mais limitação de taxa está disponível através de ferramentas de modo de usuário de terceiros, como trickle, ou modelagem de tráfego em nível de kernel.

    Ah, e as estatísticas em tempo real da varredura podem ser suprimidas com -u.


    1. Mas falando sério, como executá-lo?

    Uma varredura autenticada padrão de um site bem projetado e autossuficiente (avisa sobre todos os links externos, e-mails, conteúdo misto e problemas de cabeçalho de cache), incluindo força bruta suave:

    $ touch new_dict.wl $ ./skipfish -MEU -S dictionaries/minimal.wl -W new_dict.wl
    -C "AuthCookie=value" -X /logout.aspx -o output_dir
    http://www.example.com/

    Rastreamento de cinco conexões, mas sem força bruta; fingindo ser MSIE e confiando no conteúdo do example.com:

    $ ./skipfish -m 5 -L -W- -o output_dir -b ie -B example.com
    http://www.example.com/

    Força bruta pesada apenas (sem extração de links HTML), limitada a um único diretório e com timeout após 5 segundos:

    $ touch new_dict.wl $ ./skipfish -S dictionaries/complete.wl -W new_dict.wl
    -P -I http://www.example.com/dir1/ -o output_dir -t 5 -I
    http://www.example.com/dir1/

    Para uma lista breve de todas as opções de linha de comando, tente ./skipfish -h.


    1. Como interpretar e lidar com os problemas relatados?

    A maioria dos problemas relatados pelo skipfish deve ser autoexplicativa, assumindo que você tenha um bom entendimento dos fundamentos da segurança web. Se precisar de uma atualização rápida sobre alguns dos tópicos mais complicados, como MIME sniffing, você pode gostar do nosso abrangente Browser Security Handbook como ponto de partida:

    http://code.google.com/p/browsersec/

    Se ainda precisar de ajuda, existem várias organizações que dedicam esforço considerável para documentar e explicar muitas das ameaças comuns de segurança web, e aconselhar o público sobre como lidar com elas. Encorajo você a consultar os materiais publicados pela OWASP e pelo Web Application Security Consortium, entre outros:

    • http://www.owasp.org/index.php/Category:Principle
    • http://www.owasp.org/index.php/Category:OWASP_Guide_Project
    • http://www.webappsec.org/projects/articles/

    Embora eu esteja feliz em diagnosticar problemas com o próprio scanner, infelizmente não posso oferecer assistência com o funcionamento interno de aplicações web de terceiros.


    1. Limitações conhecidas / lista de desejos de funcionalidades

    Abaixo está uma lista de funcionalidades atualmente ausentes no skipfish. Se você deseja melhorar a ferramenta contribuindo com código em uma dessas áreas, por favor me avise:

    • Verificações de estouro de buffer: após consideração cuidadosa, suspeito que não há uma maneira confiável de testar estouros de buffer remotamente. Assim como a própria condição de falha que estamos procurando, verificações adequadas de tamanho de buffer também podem resultar em exceções não capturadas, mensagens 500, etc. Adoraria estar errado, no entanto.

    • Detecção completa de XSS em JavaScript: várias verificações rudimentares estão presentes no código, mas não há um mecanismo de script adequado para avaliar expressões e acesso ao DOM embutido.

    • Bugs de consumo/injeção de caracteres de codificação de comprimento variável: esses problemas parecem ser amplamente tratados no nível do navegador neste momento, por isso foram de prioridade muito menor no momento desta escrita.

    • Verificações de segurança e extração de links para conteúdo baseado em plugins de terceiros (Flash, Java, PDF, etc).

    • Força bruta de senha e sondagens de força bruta de nomes de arquivo numéricos.

    • Integração com mecanismos de busca (vhosts, caminhos iniciais).

    • Decodificação VIEWSTATE.

    • Autenticação NTLM e digest.

    • Testes PHP mais específicos (injeção eval, RFI).

    • Suporte a proxy: um suporte experimental a proxy HTTP está disponível através de uma diretiva #define no config.h. Adicionar suporte para proxy HTTPS é mais complicado e ainda está em desenvolvimento.

    • Opção de retomada de varredura, melhores informações em tempo de execução.

    • Suporte a instalação independente (make install).

    • Interface web de agendamento e gerenciamento.


    1. Oy! Algo deu terrivelmente errado!

    Não existe um rastreador web tão bom que não haja um framework web que um dia o incendeie. Se você encontrar o que parece ser um mau comportamento (por exemplo, uma varredura que leva uma eternidade e gera muitas requisições, nós completamente falsos na saída da varredura, ou travamentos diretos), verifique primeiro nossa página de problemas conhecidos:

    http://code.google.com/p/skipfish/wiki/KnownIssues

    Se não conseguir encontrar uma resposta satisfatória lá, recompile o scanner com:

    $ make clean debug

    ... e execute-o novamente desta forma:

    $ ./skipfish [...opções anteriores...] 2>logfile.txt

    Você pode então inspecionar logfile.txt para ter uma ideia do que deu errado; se parecer um problema do scanner, remova qualquer informação sensível do arquivo de log e envie-o ao autor.

    Se o scanner travou, recompile-o conforme indicado acima, e então digite:

    $ ulimit -c unlimited $ ./skipfish [...opções anteriores...] 2>logfile.txt $ gdb --batch -ex back ./skipfish core

    ... e certifique-se de enviar ao autor a saída desse último comando também.


    1. Créditos e feedback

    O Skipfish é possível graças às contribuições e ao valioso feedback da equipe de engenharia de segurança da informação do Google.

    Se você tiver algum relatório de bug, pergunta, sugestão ou preocupação em relação ao aplicativo, o autor principal pode ser contatado em [email protected].

    Baixar ferramenta