O que realmente acontece quando você roda um pentest web
A maioria dos profissionais começa com Burp Suite Community e acha que o trabalho tá pronto quando o zappeiro acha um SQL injection simples. Isso é só o primeiro passo de uma caixinha de ferramentas que ninguém te ensina a usar direito no dia a dia. O pentest em aplicações web é basicamente a arte de quebrar sistemas pensando como alguém que não tem documentação e quer entrar por qualquer brecha possível, mas o problema é que a teoria dos livros raramente combina com a realidade dos endpoints modernos.
Configurando o ambiente de pentest em aplicações web
Você vai precisar de um proxy interceptador, um scanner automatizado, um zappeiro de SQL injection como sqlmap, e um interpretador de JavaScript que rode comandos remotos. A configuração mais comum que eu vejo sendo feita errada é a parte do certificado SSL no navegador do tester. Se você não configurar o CA cert no Burp Suite e ativar o option " Intercept client requests " de verdade, todo o tráfego TLS vai passar sem captura. Já perdi horas achando que um app era imune quando, na verdade, eu não estava conseguindo interceptar requisições porque o proxy tava mal configurado. Uma vez, em um engagement onde o cliente tinha um WAF da Cloudflare configurado com regras customizadas, o scanner automatizado retornava 403 em absolutamente tudo. Passei dois dias inteiros tentando ajustar payloads até descobrir que a regra do WAF só disparava para requisições com cabeçalhos padrão de navegador. O workaround foi configurar o Burp Suite para enviar requisições com User-Agent vazio e um Content-Type customizado diferente do padrão. As requisições passavam normalmente pelo WAF e o teste prosseguia. Isso não é algo que qualquer tutorial ensina, porque depende inteiramente da configuração específica de cada ambiente.
Metodologia prática de_ENUMERAÇÃO e RECONHECIMENTO
O primeiro passo é mapear a superfície de ataque. Não use apenas o DirBuster com wordlists genéricas. O Subfinder combinado com o httpx pra filtrar subdomínios ativos e depois o nuclei pra rodar templates específicos é muito mais eficiente do que rodar um Gobuster cego contra o domínio principal. Em média, esse fluxo leva uns 20 minutos pra listar todos os endpoints expostos de um domínio médio, contra 2 ou 3 horas de um scan manual tradicional. Para enumeração de tecnologias, o Wappalyzer no navegador já resolve a maioria dos casos, mas quando o app usa frameworks customizados ou JS bundle minificado, você precisa inspecionar o código fonte das páginas e procurar por version numbers nos scripts carregados. Frameworks com versões conhecidas tem CVEs públicos que você pode cruzar diretamente com o NVD usando o searchsploit. Um ponto que poucos consideram é que versões de bibliotecas JS no frontend também podem ter vulnerabilidades exploráveis via XSS refatorizado, então nunca ignore a camada de client-side no reconhecimento.
Exploração: OS pontos que realmente importam
SQL injection ainda aparece em cerca de 30% dos apps que eu testo, principalmente em campos de busca e filtros avançados. O método clássico de detecção é injetar aspas simples e observar se o erro do banco aparece na resposta. Se o app não mostra erro algum, teste com payloads boolean-based blind e time-based blind. O sqlmap consegue automatizar isso, mas em produção eu recomendo fazer a detecção manual primeiro pra entender o contexto antes de disparar o scanner. XSS é mais frequente do que muitos pensam. A diferença entre XSS refletido e stored muda completamente a gravidade do achado, porque um stored persiste no banco de dados e afeta todos os usuários que acessarem aquela página. Para testar, comece com um payload simples como nos parâmetros da URL e observe se o caractere < é escapado pelo backend. Se não for, o próximo passo é testar eventos HTML como onerror e onmouseover, porque muitos filtros modernos bloqueiam tags