Modificar uma Resposta HTTP em Tempo Real no Burp Proxy

Beginner
Pratique Agora

Introdução

O Burp Suite é uma plataforma poderosa para realizar testes de segurança em aplicações web. Um dos seus componentes principais é o Burp Proxy, que atua como um "man-in-the-middle" entre o seu navegador e o servidor web alvo. Isso permite interceptar, inspecionar e modificar o tráfego bruto que passa em ambas as direções.

Embora a interceptação de requisições seja uma tarefa comum, a interceptação e modificação de respostas é igualmente importante para testes de segurança. Ela permite testar como a aplicação do lado do cliente lida com dados inesperados ou manipulados do servidor.

Neste laboratório, você aprenderá a configurar o Burp Proxy para interceptar respostas do servidor e modificar o conteúdo HTML de uma página web antes que ela seja exibida no seu navegador. Usaremos um servidor web local simples para esta demonstração.

Nesta etapa, você configurará o Burp Suite para habilitar a interceptação de respostas do servidor web. Por padrão, o Burp Proxy apenas intercepta requisições de saída do navegador.

Primeiro, você precisa iniciar o Burp Suite. Você pode encontrá-lo no menu de aplicações ou pesquisando por ele.

Com o Burp Suite aberto:

  1. Clique na aba Proxy na parte superior da janela.
  2. Dentro da aba Proxy, clique na sub-aba Opções.
  3. Role para baixo pelas opções até encontrar a seção intitulada Intercept Server Responses.

Esta seção contém as configurações que controlam se e como o Burp Proxy intercepta respostas HTTP de entrada. Você agora localizou a área de configuração necessária para a próxima etapa.

Habilitar a Caixa de Seleção 'Interceptar respostas com base nas seguintes regras'

Nesta etapa, você ativará o recurso de interceptação de respostas.

Na seção Intercept Server Responses que você localizou na etapa anterior, você verá uma caixa de seleção.

  1. Clique na caixa de seleção ao lado do rótulo Intercept responses based on the following rules.

Ao marcar esta caixa, o Burp Proxy será configurado para interceptar respostas do servidor que correspondem às regras definidas abaixo dela. A regra padrão, Is a response to a request that was intercepted (É uma resposta a uma requisição que foi interceptada), é adicionada automaticamente e é perfeita para nossas necessidades. Esta regra informa ao Burp para interceptar uma resposta apenas se sua requisição correspondente também foi interceptada pelo proxy. Isso impede que o Burp pause em cada resposta individual, como aquelas para imagens de fundo ou scripts, e se concentra apenas no tráfego que você está inspecionando ativamente.

Interceptar uma Requisição e Encaminhá-la

Nesta etapa, você usará o navegador integrado do Burp para fazer uma requisição ao nosso servidor web local e interceptá-la.

  1. Navegue até a sub-aba Proxy > Intercept.
  2. Certifique-se de que o botão diga Intercept is on (Interceptação está ativa). Se disser "Intercept is off" (Interceptação está desativada), clique nele para habilitar a interceptação.
  3. Clique no botão Open Browser (Abrir Navegador). Uma nova janela do navegador Chromium, pré-configurada para usar o Burp Proxy, será aberta.
  4. Na barra de endereço do navegador, digite http://127.0.0.1:8000 e pressione Enter.

O navegador parecerá estar carregando indefinidamente. Isso ocorre porque o Burp interceptou a requisição HTTP. Volte para a janela do Burp Suite. Na aba Proxy > Intercept, você verá a requisição HTTP bruta:

GET / HTTP/1.1
Host: 127.0.0.1:8000
... (other headers)

Esta é a requisição do seu navegador para o servidor local. Para permitir que ela prossiga para o servidor, clique no botão Forward (Encaminhar). Após encaminhar a requisição, o Burp agora aguardará para interceptar a resposta que retorna do servidor.

Modificar o Corpo HTML na Resposta Interceptada

Nesta etapa, você editará o conteúdo da resposta HTTP antes que ela seja enviada ao navegador.

Como você habilitou a interceptação de respostas e encaminhou a requisição na etapa anterior, a aba Proxy > Intercept agora contém a resposta do servidor. Ela se parecerá com algo assim:

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.6
Date: ...
Content-type: text/html
Content-Length: ...

<h1>Welcome to the Original Page!</h1><p>This is the content you will modify.</p>

A área de texto principal é editável. É aqui que você pode modificar a resposta em tempo real.

  1. Na área de texto do corpo da resposta, encontre a linha <h1>Welcome to the Original Page!</h1>.
  2. Altere o texto para <h1>Welcome to the Modified Page!</h1>.
  3. Você também pode alterar o texto do parágrafo, se desejar, por exemplo, para <p>This content has been changed by Burp Proxy.</p>.

Você agora alterou a resposta do servidor. Ela ainda está retida pelo Burp Proxy e ainda não chegou ao navegador.

Nesta etapa final, você enviará a resposta modificada ao navegador e verá o resultado.

A resposta modificada ainda está aguardando na aba Proxy > Intercept.

  1. Clique no botão Forward (Encaminhar) mais uma vez. Isso liberará a resposta e enviará sua versão modificada para o navegador.
  2. Volte para a janela do Burp Browser que estava carregando anteriormente.

A página agora terminará de carregar, mas em vez do conteúdo original, exibirá o texto que você inseriu. Você deverá ver:

Welcome to the Modified Page!
This content has been changed by Burp Proxy.

Parabéns! Você interceptou com sucesso uma resposta HTTP, modificou seu conteúdo em trânsito e observou a mudança no navegador. Isso demonstra uma capacidade fundamental para testes de segurança de aplicações web. Você pode agora desativar a interceptação clicando no botão "Intercept is on" (Interceptação está ativa).

Resumo

Neste laboratório, você ganhou experiência prática com um recurso chave do Burp Suite. Você aprendeu a:

  • Configurar o Burp Proxy para interceptar respostas do servidor, um recurso que está desativado por padrão.
  • Seguir o fluxo de trabalho de interceptar uma requisição, encaminhá-la e, em seguida, capturar a resposta correspondente.
  • Modificar o corpo de uma resposta HTTP em tempo real antes que ela chegue ao navegador.
  • Observar o impacto direto da modificação da resposta na página web renderizada.

Esta técnica é fundamental em segurança web para testar como o código front-end de uma aplicação web lida com dados inesperados ou maliciosos do servidor, potencialmente descobrindo vulnerabilidades como Cross-Site Scripting (XSS) ou controle de acesso quebrado.