Analisar Aleatoriedade de Tokens de Sessão no Burp Sequencer

Beginner
Pratique Agora

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.

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.

  1. Abra o Terminal a partir da área de trabalho.
  2. Inicie o Burp Suite. O comando exato pode variar, mas geralmente é um script. Para este ambiente, assumiremos que ele está disponível.
  3. Assim que o Burp Suite estiver aberto, vá para a aba Proxy e, em seguida, para a sub-aba Intercept. Certifique-se de que a interceptação esteja desligada por enquanto, clicando no botão Intercept is on.
  4. Em seguida, vá para a aba Proxy -> HTTP history. É aqui que todo o tráfego será registrado.
  5. Clique no botão Open Browser. Isso iniciará o navegador Chromium pré-configurado do Burp.
  6. 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.
  7. Insira quaisquer credenciais, por exemplo, user como nome de usuário e password como senha, e clique no botão de login.
  8. Retorne à janela do Burp Suite e olhe para a aba Proxy -> HTTP history. Você deverá ver uma lista de requisições. Encontre a requisição POST para o endpoint de login. Clique nela.
  9. No visualizador de requisição/resposta abaixo, clique na aba Response. Procure por um cabeçalho Set-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.

  1. Na aba Proxy -> HTTP history, certifique-se de que a requisição POST correta ainda esteja selecionada.
  2. 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.
  3. 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.

  1. Clique na aba Sequencer para mudar para a ferramenta. Você verá a requisição que acabou de enviar carregada no painel "Live Capture Request".

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.

  1. Na aba Sequencer, olhe para o painel "Select Live Capture Request". A requisição já deve estar carregada.
  2. Clique no botão Start live capture localizado 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.

  1. Role para baixo até a seção "Token Location Within Response".
  2. Você tem duas opções principais: Custom location e Defined in a cookie. Como o token está em um cabeçalho Set-Cookie, a segunda opção é a mais fácil.
  3. Clique no botão de rádio ao lado de Defined in a cookie.
  4. 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.

  1. Clique no botão Start live capture novamente. Desta vez, o Burp enviará continuamente a requisição e coletará os tokens de sessão de cada resposta.
  2. Observe o painel de resultados "Live Capture". Você verá os números Request count e Tokens collected aumentarem.
  3. 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.
  4. Assim que tiver tokens suficientes, clique no botão Pause e, em seguida, clique no botão Analyze now.

O Burp realizará uma série de testes estatísticos nos tokens coletados. Os resultados serão exibidos em várias abas.

  1. 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.