WebScan v2.0: Da Ideia ao Pip Install em Uma Semana – Jornada, Erros e Benchmarks
O desenvolvedor do WebScan compartilha a rápida evolução do seu scanner web, desde a concepção até a versão 2.0, destacando os desafios enfrentados, as melhorias implementadas e um comparativo de performance com ferramentas populares como Nuclei e Nikto.
MundiX News·15 de junho de 2026·5 min de leitura·👁 9 views
WebScan v2.0: Da Ideia ao Pip Install em Uma Semana – Jornada, Erros e Benchmarks
O Início Inesperado e a Motivação
Há apenas um dia, publiquei meu primeiro artigo sobre o WebScan, originário da "Sandbox" do Habr. Sinceramente, não esperava grande repercussão. Minha expectativa era que cerca de 50 pessoas lessem, talvez algumas dessem uma estrela no GitHub. O resultado, no entanto, foi surpreendente. Em 24 horas, o artigo foi lido por 548 pessoas, alcançando 10 mil visualizações. Um post fixado em um canal com 29 mil seguidores e até mesmo o Google AI começou a recomendar o WebScan para quem buscava ferramentas de bug bounty em Python. Recebi 12 estrelas no GitHub de pessoas que não conhecia. Essa recepção calorosa foi a maior motivação para continuar o desenvolvimento sem hesitar.
Honestidade Sobre as Dificuldades
O caminho para a versão 2.0 não foi isento de obstáculos. Solicitei acesso ao Cyber Verification Program da Anthropic para utilizar o Claude sem restrições em cibersegurança, mas fui negado em uma hora. O motivo? Um simples clique acidental em "Não" na pergunta sobre MFA (Autenticação de Múltiplos Fatores). Outro contratempo foi a cobertura de testes: eu acreditava que estava em 87%, mas na verdade era apenas a barra de progresso do pytest, e a cifra real era 84%. Surpreendentemente, o Nuclei, escrito em Go, mostrou-se mais lento que o WebScan em Python durante um benchmark que realizei. Além disso, o nome "webscan" já estava em uso no PyPI, forçando a renomeação para "webscan-security". Apesar desses percalços, todos foram superados, demonstrando que nem tudo segue o plano original, mas a persistência é fundamental.
Evolução Significativa: De v1.0 para v2.0
A transição de v1.0 para v2.0 representa uma transformação completa da ferramenta. O número de plugins saltou de 7 para 19, adicionando funcionalidades cruciais como detecção de XSS, Blind SQL Injection, Path Traversal, Open Redirect, SSRF, introspecção GraphQL, análise SSL/TLS, identificação de tecnologias (Tech Fingerprint), enumeração de subdomínios via DNS e crt.sh, consulta de CVEs em tempo real via NVD API (com mais de 350.000 vulnerabilidades) e detecção de segredos (chaves AWS, OpenAI, Anthropic, GitHub em código-fonte). O WebScan agora possui um crawler integrado que percorre o alvo, analisando links, formulários e endpoints JavaScript, expandindo significativamente sua capacidade de descoberta. A autenticação foi aprimorada para suportar cookies, tokens Bearer, Basic Auth e login baseado em formulário, permitindo o escaneamento de páginas protegidas por login. Foram implementados três modos de operação: "Safe Mode" para proprietários de sites (com velocidade limitada e respeito ao robots.txt), "Stealth Mode" para bug bounty (com jitter, rotação de User-Agent e suporte a proxy SOCKS5) e "CI/CD Mode" com saída em formato SARIF e código de saída 1 para vulnerabilidades críticas/altas, incluindo um workflow pronto para GitHub Actions. A qualidade do código também foi elevada, com 214 testes (contra 165 na v1.0), cobertura de 94% (acima do padrão interno do Google de 80%), uso de mypy strict e ruff clean, resultando em 39 arquivos sem erros de tipagem.
Benchmarks Reais e a Vantagem do Python Assíncrono
O principal avanço na minha compreensão da ferramenta veio com os benchmarks. Em um teste comparativo com Nuclei e Nikto na mesma URL e condições, o WebScan obteve um tempo de execução de 7.3 segundos, com 28 descobertas e zero falsos positivos (1 crítica, 9 altas, 9 médias, 7 baixas, 2 informacionais). Em contraste, o Nuclei 3.8.0 (com 1720 templates) levou 34.2 segundos e apresentou 21 descobertas, sendo a maioria informacional. O Nikto 2.6.0 demorou 42.6 segundos com 30 descobertas, incluindo mais de 5 falsos positivos. O WebScan se mostrou 4.7 vezes mais rápido que o Nuclei e 5.8 vezes mais rápido que o Nikto. Claude, ao analisar os resultados, comentou: "WebScan é significativamente mais rápido e suas descobertas são ponderadas por severidade e com menos ruído neste alvo." Essa performance superior do Python, neste caso, não se deve à lentidão do Go, mas sim à abordagem assíncrona do WebScan utilizando aiohttp, que gerencia milhares de conexões sem sobrecarregar threads pesados, em contraste com a execução sequencial de templates do Nuclei. A capacidade de consultar a API do NVD em tempo real para mais de 350.000 CVEs, em vez de depender de templates estáticos, também confere ao WebScan uma vantagem significativa na detecção de vulnerabilidades recém-divulgadas.
Instalação e Próximos Passos
A instalação do WebScan agora é simplificada através do pip: pip install webscan-security. Para utilizá-lo, basta executar webscan -t https://example.com --safe-mode. Alternativamente, é possível instalar a partir do código-fonte clonando o repositório no GitHub (git clone https://github.com/lutzashl290788-cell/webscan), navegando até o diretório e executando pip install .. O futuro do WebScan promete ainda mais inovações, incluindo a integração com a API do Claude para análise inteligente de descobertas e redução de falsos positivos, geolocalização DBIP para informações de país, ASN e provedor nos relatórios, e integração com Interactsh para detecção de vulnerabilidades cegas como SSRF e blind XSS. Em resumo, em apenas uma semana, o projeto evoluiu de 7 para 19 plugins, de 83% para 94% de cobertura de testes, de 0 para 12 estrelas no GitHub e de um post na "Sandbox" para 10 mil visualizações. O projeto é open source sob licença MIT, e contribuições como estrelas, forks e Pull Requests são muito bem-vindas.
🛡️⚡
Pare de pesquisar. Comece a hackear.
O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.
Sem cartão para começar · Planos a partir de R$49/mês
WebScan v2.0: Da Ideia ao Pip Install em Uma Semana – Jornada, Erros e Benchmarks
O Início Inesperado e a Motivação
Há apenas um dia, publiquei meu primeiro artigo sobre o WebScan, originário da "Sandbox" do Habr. Sinceramente, não esperava grande repercussão. Minha expectativa era que cerca de 50 pessoas lessem, talvez algumas dessem uma estrela no GitHub. O resultado, no entanto, foi surpreendente. Em 24 horas, o artigo foi lido por 548 pessoas, alcançando 10 mil visualizações. Um post fixado em um canal com 29 mil seguidores e até mesmo o Google AI começou a recomendar o WebScan para quem buscava ferramentas de bug bounty em Python. Recebi 12 estrelas no GitHub de pessoas que não conhecia. Essa recepção calorosa foi a maior motivação para continuar o desenvolvimento sem hesitar.
Honestidade Sobre as Dificuldades
O caminho para a versão 2.0 não foi isento de obstáculos. Solicitei acesso ao Cyber Verification Program da Anthropic para utilizar o Claude sem restrições em cibersegurança, mas fui negado em uma hora. O motivo? Um simples clique acidental em "Não" na pergunta sobre MFA (Autenticação de Múltiplos Fatores). Outro contratempo foi a cobertura de testes: eu acreditava que estava em 87%, mas na verdade era apenas a barra de progresso do pytest, e a cifra real era 84%. Surpreendentemente, o Nuclei, escrito em Go, mostrou-se mais lento que o WebScan em Python durante um benchmark que realizei. Além disso, o nome "webscan" já estava em uso no PyPI, forçando a renomeação para "webscan-security". Apesar desses percalços, todos foram superados, demonstrando que nem tudo segue o plano original, mas a persistência é fundamental.
Evolução Significativa: De v1.0 para v2.0
A transição de v1.0 para v2.0 representa uma transformação completa da ferramenta. O número de plugins saltou de 7 para 19, adicionando funcionalidades cruciais como detecção de XSS, Blind SQL Injection, Path Traversal, Open Redirect, SSRF, introspecção GraphQL, análise SSL/TLS, identificação de tecnologias (Tech Fingerprint), enumeração de subdomínios via DNS e crt.sh, consulta de CVEs em tempo real via NVD API (com mais de 350.000 vulnerabilidades) e detecção de segredos (chaves AWS, OpenAI, Anthropic, GitHub em código-fonte). O WebScan agora possui um crawler integrado que percorre o alvo, analisando links, formulários e endpoints JavaScript, expandindo significativamente sua capacidade de descoberta. A autenticação foi aprimorada para suportar cookies, tokens Bearer, Basic Auth e login baseado em formulário, permitindo o escaneamento de páginas protegidas por login. Foram implementados três modos de operação: "Safe Mode" para proprietários de sites (com velocidade limitada e respeito ao robots.txt), "Stealth Mode" para bug bounty (com jitter, rotação de User-Agent e suporte a proxy SOCKS5) e "CI/CD Mode" com saída em formato SARIF e código de saída 1 para vulnerabilidades críticas/altas, incluindo um workflow pronto para GitHub Actions. A qualidade do código também foi elevada, com 214 testes (contra 165 na v1.0), cobertura de 94% (acima do padrão interno do Google de 80%), uso de mypy strict e ruff clean, resultando em 39 arquivos sem erros de tipagem.
Benchmarks Reais e a Vantagem do Python Assíncrono
O principal avanço na minha compreensão da ferramenta veio com os benchmarks. Em um teste comparativo com Nuclei e Nikto na mesma URL e condições, o WebScan obteve um tempo de execução de 7.3 segundos, com 28 descobertas e zero falsos positivos (1 crítica, 9 altas, 9 médias, 7 baixas, 2 informacionais). Em contraste, o Nuclei 3.8.0 (com 1720 templates) levou 34.2 segundos e apresentou 21 descobertas, sendo a maioria informacional. O Nikto 2.6.0 demorou 42.6 segundos com 30 descobertas, incluindo mais de 5 falsos positivos. O WebScan se mostrou 4.7 vezes mais rápido que o Nuclei e 5.8 vezes mais rápido que o Nikto. Claude, ao analisar os resultados, comentou: "WebScan é significativamente mais rápido e suas descobertas são ponderadas por severidade e com menos ruído neste alvo." Essa performance superior do Python, neste caso, não se deve à lentidão do Go, mas sim à abordagem assíncrona do WebScan utilizando aiohttp, que gerencia milhares de conexões sem sobrecarregar threads pesados, em contraste com a execução sequencial de templates do Nuclei. A capacidade de consultar a API do NVD em tempo real para mais de 350.000 CVEs, em vez de depender de templates estáticos, também confere ao WebScan uma vantagem significativa na detecção de vulnerabilidades recém-divulgadas.
Instalação e Próximos Passos
A instalação do WebScan agora é simplificada através do pip: pip install webscan-security. Para utilizá-lo, basta executar webscan -t https://example.com --safe-mode. Alternativamente, é possível instalar a partir do código-fonte clonando o repositório no GitHub (git clone https://github.com/lutzashl290788-cell/webscan), navegando até o diretório e executando pip install .. O futuro do WebScan promete ainda mais inovações, incluindo a integração com a API do Claude para análise inteligente de descobertas e redução de falsos positivos, geolocalização DBIP para informações de país, ASN e provedor nos relatórios, e integração com Interactsh para detecção de vulnerabilidades cegas como SSRF e blind XSS. Em resumo, em apenas uma semana, o projeto evoluiu de 7 para 19 plugins, de 83% para 94% de cobertura de testes, de 0 para 12 estrelas no GitHub e de um post na "Sandbox" para 10 mil visualizações. O projeto é open source sob licença MIT, e contribuições como estrelas, forks e Pull Requests são muito bem-vindas.
📤 Compartilhar & Baixar
🧰 Ferramentas recomendadas
Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.