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.
Navegar para Proxy > Opções > Interceptar Respostas do Servidor
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:
- Clique na aba Proxy na parte superior da janela.
- Dentro da aba
Proxy, clique na sub-aba Opções. - 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.
- 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.
- Navegue até a sub-aba Proxy > Intercept.
- 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.
- Clique no botão Open Browser (Abrir Navegador). Uma nova janela do navegador Chromium, pré-configurada para usar o Burp Proxy, será aberta.
- Na barra de endereço do navegador, digite
http://127.0.0.1:8000e 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.
- Na área de texto do corpo da resposta, encontre a linha
<h1>Welcome to the Original Page!</h1>. - Altere o texto para
<h1>Welcome to the Modified Page!</h1>. - 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.
Encaminhar a Resposta Modificada e Observar a Mudança no 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.
- Clique no botão Forward (Encaminhar) mais uma vez. Isso liberará a resposta e enviará sua versão modificada para o navegador.
- 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.
