Manipular e Reenviar Requisições no Burp Repeater

Beginner
Pratique Agora

Introdução

Bem-vindo a este laboratório sobre o uso do Burp Repeater. O Burp Repeater é uma ferramenta simples, mas poderosa, dentro do Burp Suite para manipular manualmente e reenviar requisições HTTP individuais, e analisar as respostas da aplicação. É uma ferramenta fundamental para qualquer testador de segurança de aplicações web, permitindo sondar vulnerabilidades observando como um servidor responde a diferentes entradas.

Neste laboratório, você aprenderá o fluxo de trabalho principal do Burp Repeater. Você começará capturando uma requisição padrão de uma aplicação web, enviando-a para o Repeater, modificando seus parâmetros e, em seguida, reenviando-a para o servidor. Finalmente, você analisará a resposta do servidor à sua requisição modificada e aprenderá a navegar pelo histórico de requisições.

Selecionar uma Requisição em uma Aba do Repeater

Nesta etapa, você capturará uma requisição de uma aplicação web de exemplo e a enviará para o Burp Repeater para manipulação. O ambiente de laboratório já iniciou uma aplicação web e o Burp Suite para você. O navegador está configurado para proxy de tráfego através do Burp Suite.

Primeiro, vamos gerar algum tráfego.

  1. Abra o navegador web a partir da área de trabalho.
  2. Navegue até a aplicação alvo digitando http://127.0.0.1:5000 na barra de endereços.
  3. Você verá um formulário de login simples. Deixe os valores padrão (user e pass) e clique no botão Submit.

Agora, vamos encontrar esta requisição no Burp Suite.

  1. Mude para a janela do Burp Suite.
  2. Vá para a aba Proxy e, em seguida, clique na sub-aba HTTP history. Você verá uma lista de requisições que seu navegador fez.
  3. Procure por uma requisição POST para o endpoint /login. Ela deve estar perto do topo da lista. Clique nela para ver seus detalhes nos painéis abaixo.
  4. Clique com o botão direito em qualquer lugar no painel da requisição e selecione Send to Repeater no menu de contexto. Você também pode usar o atalho Ctrl+R.

Uma nova aba aparecerá e piscará em laranja na ferramenta Repeater. Clique na aba Repeater para visualizar a requisição que você acabou de enviar.

Modificar um Cabeçalho ou Valor de Parâmetro

Nesta etapa, você modificará a requisição que enviou para a aba Repeater. A interface do Repeater é dividida em duas seções principais: o painel de requisição à esquerda e o painel de resposta à direita. Atualmente, o painel de resposta está vazio porque ainda não enviamos a requisição do Repeater.

Vamos focar no painel de requisição à esquerda. Você pode editar qualquer parte da requisição aqui antes de enviá-la. Isso inclui a linha de requisição, cabeçalhos e o corpo da requisição.

  1. Olhe para a parte inferior do painel de requisição. Você verá o corpo da requisição POST, que contém os dados do formulário: username=user&password=pass.
  2. Vamos testar se podemos fazer login como um usuário diferente. Altere o valor do parâmetro username de user para admin. A linha agora deve parecer com isto: username=admin&password=pass.
  3. Você também pode modificar cabeçalhos. Por exemplo, encontre o cabeçalho User-Agent e altere seu valor para algo personalizado, como My-Custom-Browser/1.0.

Sua requisição modificada no painel esquerdo está agora pronta para ser enviada.

Clique no Botão 'Send' para Emitir a Requisição Modificada

Nesta etapa, você enviará a requisição HTTP modificada para o servidor. Após editar a requisição no painel esquerdo, a próxima ação é transmiti-la.

Na parte superior do painel de requisição, você encontrará um botão Send. Este botão é usado para emitir a requisição atual exibida no painel.

  1. Certifique-se de que sua requisição foi modificada conforme descrito na etapa anterior (por exemplo, username está definido como admin).
  2. Clique no botão Send.

O Burp Repeater enviará agora esta requisição modificada para o servidor alvo em 127.0.0.1:5000. Após um momento, a resposta do servidor aparecerá no painel de resposta à direita.

Analisar a Resposta do Servidor

Nesta etapa, você analisará a resposta do servidor à sua requisição modificada. Após clicar em Send, o painel de resposta à direita foi preenchido com os dados retornados pelo servidor.

  1. Examine o painel de resposta. Você verá a resposta HTTP completa, incluindo a linha de status (por exemplo, HTTP/1.0 200 OK), cabeçalhos de resposta e o corpo da resposta.
  2. Olhe para o corpo da resposta. Como nosso aplicativo de teste reflete o nome de usuário em sua saída, você deverá ver a mensagem: Login attempt for user: 'admin' failed. Please try again.. Isso confirma que o servidor processou nossa entrada modificada.
  3. Acima do corpo da resposta, existem várias opções de visualização: Pretty, Raw, Hex e Render.
    • Pretty: Mostra uma versão formatada da resposta, o que é útil para HTML e JSON.
    • Raw: Mostra os bytes exatos recebidos do servidor.
    • Render: Tenta renderizar a resposta como um navegador web faria. Clique em Render para ver uma representação visual da página de login com a mensagem de falha.

Analisar respostas é uma habilidade crítica. Ao enviar diferentes payloads e observar as respostas, você pode descobrir como um aplicativo se comporta e identificar vulnerabilidades potenciais.

Use as Setas de Histórico para Navegar Entre Requisições Enviadas

Nesta etapa, você aprenderá a usar o recurso de navegação de histórico dentro de uma aba do Repeater. O Repeater mantém um histórico de todas as requisições que você enviou na aba atual, o que é muito útil para comparar as respostas a requisições ligeiramente diferentes.

Ao lado do botão Send, você verá um número (atualmente 1) e setas para trás/frente (< e >). Estas permitem que você navegue pelo histórico de requisições.

  1. Vamos criar outra entrada de histórico. No painel de requisição, altere o username de volta para user.
  2. Clique em Send novamente. Você verá a resposta atualizar para refletir a tentativa de login para user. O número ao lado do botão Send agora mostra 2.
  3. Agora, clique na seta para trás (<). Os painéis de requisição e resposta serão atualizados para mostrar sua primeira requisição (com username=admin) e sua resposta correspondente. O número voltará para 1.
  4. Clique na seta para frente (>) para retornar à segunda requisição (com username=user).

Este recurso permite que você teste rapidamente variações de uma requisição e compare os resultados sem precisar digitar manualmente suas alterações ou gerenciar múltiplas abas do Repeater.

Resumo

Neste laboratório, você aprendeu as operações fundamentais do Burp Repeater, um componente central do Burp Suite.

Você capturou com sucesso uma requisição HTTP de uma aplicação web e a enviou para o Repeater. Em seguida, praticou a modificação dos parâmetros e cabeçalhos da requisição, reemitindo a requisição modificada para o servidor e analisando a resposta resultante. Finalmente, você aprendeu a usar a navegação de histórico para alternar eficientemente entre diferentes requisições que você enviou.

Dominar o Burp Repeater é um passo fundamental para se tornar proficiente em testes manuais de segurança de aplicações web, pois ele fornece o controle necessário para sondar uma ampla gama de vulnerabilidades.