Introdução
Neste laboratório, você aprenderá a usar o Burp Sequencer, uma ferramenta poderosa dentro do Burp Suite para analisar a qualidade da aleatoriedade nos tokens de sessão de uma aplicação. Tokens de sessão previsíveis podem ser adivinhados ou calculados por um atacante, levando a vulnerabilidades de sequestro de sessão.
Ao final deste laboratório, você será capaz de capturar requisições de login, enviá-las para o Burp Sequencer, configurar a ferramenta para analisar um token específico e interpretar os resultados para avaliar sua aleatoriedade. Esta é uma habilidade fundamental para a avaliação de segurança de aplicações web.
Encontrar uma Requisição de Login que Define um Cookie de Sessão
Nesta etapa, você iniciará o Burp Suite, usará seu navegador integrado para fazer login em uma aplicação de teste e encontrará a requisição que estabelece uma sessão.
Primeiro, você precisa iniciar o Burp Suite. Geralmente, você o encontrará no menu de aplicações ou o iniciará a partir do terminal. Para este laboratório, assumiremos que o Burp Suite está pronto para ser iniciado.
- Abra o Terminal a partir da área de trabalho.
- Inicie o Burp Suite. O comando exato pode variar, mas geralmente é um script. Para este ambiente, assumiremos que ele está disponível.
- Assim que o Burp Suite estiver aberto, vá para a aba
Proxye, em seguida, para a sub-abaIntercept. Certifique-se de que a interceptação esteja desligada por enquanto, clicando no botãoIntercept is on. - Em seguida, vá para a aba
Proxy->HTTP history. É aqui que todo o tráfego será registrado. - Clique no botão
Open Browser. Isso iniciará o navegador Chromium pré-configurado do Burp. - No navegador, navegue até uma página de login. Para este laboratório, usaremos uma página de login hipotética. Em um teste real, esta seria sua aplicação alvo.
- Insira quaisquer credenciais, por exemplo,
usercomo nome de usuário epasswordcomo senha, e clique no botão de login. - Retorne à janela do Burp Suite e olhe para a aba
Proxy->HTTP history. Você deverá ver uma lista de requisições. Encontre a requisiçãoPOSTpara o endpoint de login. Clique nela. - No visualizador de requisição/resposta abaixo, clique na aba
Response. Procure por um cabeçalhoSet-Cookie. Ele se parecerá com algo assim:
HTTP/1.1 302 Found
...
Set-Cookie: sessionID=q8f...; path=/; HttpOnly
...
Este sessionID é o token que queremos analisar. Você identificou com sucesso a requisição alvo.
Clicar com o Botão Direito na Requisição no Histórico do Proxy e 'Send to Sequencer'
Nesta etapa, você enviará a requisição de login que identificou para a ferramenta Burp Sequencer para análise.
Agora que você localizou a requisição POST que define o cookie de sessão no seu histórico do Proxy, você precisa isolá-la para análise.
- Na aba
Proxy->HTTP history, certifique-se de que a requisiçãoPOSTcorreta ainda esteja selecionada. - Clique com o botão direito em qualquer lugar da entrada da requisição na tabela de histórico. Isso abrirá um menu de contexto com muitas opções.
- No menu de contexto, navegue até e clique em
Send to Sequencer.
Esta ação envia uma cópia da requisição selecionada para a ferramenta Sequencer. Você verá agora o cabeçalho da aba Sequencer ficar laranja, indicando que recebeu um novo item.
- Clique na aba
Sequencerpara mudar para a ferramenta. Você verá a requisição que acabou de enviar carregada no painel "Live Capture Request".
No Sequencer, Selecione a Resposta Contendo o Cookie
Nesta etapa, você confirmará que o Burp Sequencer pode emitir corretamente a requisição e receber uma resposta contendo o token de sessão.
Dentro da aba Sequencer, você verá a requisição que enviou do Proxy. Antes de poder configurar a localização do token, você precisa garantir que o Sequencer consiga obter uma resposta com sucesso.
- Na aba
Sequencer, olhe para o painel "Select Live Capture Request". A requisição já deve estar carregada. - Clique no botão
Start live capturelocalizado no topo deste painel.
O Burp enviará a requisição uma vez e exibirá a resposta que recebeu. Isso permite que você verifique se a requisição é válida e se o servidor está respondendo com um token de sessão como esperado. A resposta aparecerá no painel abaixo da requisição.
Você deverá ver o cabeçalho Set-Cookie na resposta, assim como fez no histórico do Proxy. Isso confirma que o Sequencer está pronto para a próxima etapa de configuração. Se você receber um erro, talvez precise voltar ao Proxy e encontrar uma requisição diferente.
Configurar a Localização do Token Dentro da Resposta
Nesta etapa, você informará ao Burp Sequencer exatamente onde encontrar o token de sessão na resposta do servidor. Esta é a etapa de configuração mais importante.
Após iniciar a captura ao vivo e receber uma resposta válida, você deve definir a localização do token que deseja analisar.
- Role para baixo até a seção "Token Location Within Response".
- Você tem duas opções principais:
Custom locationeDefined in a cookie. Como o token está em um cabeçalhoSet-Cookie, a segunda opção é a mais fácil. - Clique no botão de rádio ao lado de
Defined in a cookie. - Um menu suspenso ficará ativo. Clique nele e selecione o nome do cookie de sessão que você identificou anteriormente (por exemplo,
sessionID).
Ao selecionar o cookie, você está dizendo ao Sequencer para extrair automaticamente o valor desse cookie específico de todas as respostas que ele receber. Este valor é o que será analisado quanto à aleatoriedade.
Uma vez que o cookie é selecionado, a configuração está completa. O Sequencer agora sabe qual requisição enviar e onde encontrar o token na resposta.
Iniciar uma Captura ao Vivo e Analisar os Resultados de Aleatoriedade
Nesta etapa, você começará a coletar uma grande amostra de tokens e, em seguida, usará o motor estatístico do Sequencer para analisar sua aleatoriedade.
Com a configuração completa, você está pronto para iniciar a análise.
- Clique no botão
Start live capturenovamente. Desta vez, o Burp enviará continuamente a requisição e coletará os tokens de sessão de cada resposta. - Observe o painel de resultados "Live Capture". Você verá os números
Request counteTokens collectedaumentarem. - Deixe a captura em execução até coletar pelo menos 2.000 tokens. Para uma análise completa, são recomendados de 10.000 a 20.000 tokens, mas 2.000 são suficientes para este laboratório.
- Assim que tiver tokens suficientes, clique no botão
Pausee, em seguida, clique no botãoAnalyze now.
O Burp realizará uma série de testes estatísticos nos tokens coletados. Os resultados serão exibidos em várias abas.
- Concentre-se na aba
Summary. Ela fornece uma avaliação geral da qualidade do token. A métrica mais importante é a qualidade geral de aleatoriedade, que é estimada em bits de entropia efetiva.
Uma alta quantidade de entropia (por exemplo, 128 bits) indica um token muito forte e imprevisível. Uma quantidade baixa (por exemplo, menos de 64 bits) pode indicar uma fraqueza que poderia ser explorada. O resumo lhe dará uma classificação clara de "Excellent", "Good", "Poor" ou "Insecure".
Você pode explorar as outras abas, como Character-level analysis e Bit-level analysis, para investigar mais a fundo quaisquer fraquezas potenciais encontradas.
Resumo
Neste laboratório, você aprendeu com sucesso como usar o Burp Sequencer para realizar uma análise estatística de tokens de sessão.
Você praticou todo o fluxo de trabalho:
- Capturar uma requisição de login que define um cookie usando o Burp Proxy.
- Enviar essa requisição para a ferramenta Sequencer.
- Configurar o Sequencer para localizar o token de sessão dentro da resposta do servidor.
- Executar uma captura ao vivo para coletar uma grande amostra de tokens.
- Analisar os dados coletados para determinar a entropia efetiva e a qualidade geral da aleatoriedade do token.
Este processo é uma parte crítica de qualquer teste de segurança de aplicações web, pois ajuda a identificar uma das vulnerabilidades mais comuns e graves: o gerenciamento de sessão previsível.
