A idéia
A WebFight nasceu da minha necessidade de lidar com um número grande de informações que uma aplicação web pode gerar. Como eu quero continuar analisando os detalhes de cada requisição e não adotar um web security scanner, decidi criar uma ferramenta que automatizasse a análise de um log de proxy. Assim eu continuo analisando os detalhes manualmente, mas ganhando muito tempo na análise do log.
A ferramenta
A idéia foi fazer um parser do log do Burp e a partir deste parser criar módulos para realizar as análises. A estrutura da ferramenta é resumida no fluxo a seguir:
A ferramenta é facilmente estendida criando módulos e as seguintes análises já estão implementadas:
- Apresenta todas as requisições e seus parâmetros para que sejam realizados testes fuzzing e de validação de dados
- Apresenta todos os status codes, possibilitando identificar erros 500; Redirects 30x; Conteúdo estático 0
- Apresenta as requisições fora do escopo da análise para identificar integrações, ou requests a outros domínios
- Realiza um fingerprint a partir da análise de headers e informações da aplicação
- Apresenta todos os cookies de sessão e a existência de cookies de sessão passados como parâmetro em requisições GET
- Cria PoC em arquivos html de todas as requisições com parâmetros para que seja testado CSRF
- Faz grep e identifica objetos DOM (password; hidden; file upload; iframe; etc...)
- Apresenta todos os comentários em client-side (HTML e javascript)
- Identifica arquivos javascript e javascripts no corpo da página apresentando o conteúdo com syntaxhighlight e realiza análise sintática no javascript apresentando Sink e Sources potencialmente perigosos
- Identifica arquivos swf; realiza download; desassembla o swf e faz grep buscando características potencialmente vulneráveis em flash
- Apresenta todas as respostas em JSON
- Apresenta todos as diretivas de cache nos headers Pragma e Cache-Control
- Apresenta as diretivas de segurança de headers CSP; HSTS e X-Frame-Options
- Apresenta o base64 do header authorization (autenticação básica de HTTP)
A Interface
A interface também facilita bastante a análise por classificar as análises e possibilita que se pesquise e filtre os registros apresentados.
Demo
Aguardo feedback e requisição de outras análises. Faça um clone do Git na página do Projeto e participe da lista de discussão.