Introdução
Neste laboratório, você aprenderá uma técnica fundamental em testes de segurança de aplicações web: a geração de um Proof of Concept (PoC) de Cross-Site Request Forgery (CSRF) usando o Burp Suite. CSRF é um tipo de ataque que engana uma vítima para que ela envie uma requisição maliciosa. O Burp Suite oferece um recurso poderoso para criar automaticamente um PoC, que pode ser usado para demonstrar o impacto da vulnerabilidade.
Você usará o proxy do Burp Suite para interceptar uma requisição que altera o estado da aplicação (como atualizar um endereço de e-mail) e, em seguida, usará suas "Engagement tools" para gerar um formulário HTML que reproduz essa requisição. Este exercício prático solidificará sua compreensão de como os ataques CSRF são elaborados e testados.
Encontrar uma Requisição que Altera o Estado (ex: atualizar e-mail) no Histórico do Proxy
Nesta etapa, você iniciará o Burp Suite, usará seu navegador integrado para realizar uma ação em um site alvo e, em seguida, localizará a requisição correspondente no histórico do proxy. Uma "requisição que altera o estado" é qualquer requisição que modifica dados no servidor, como alterar uma senha, enviar um comentário ou atualizar informações de perfil.
Primeiro, vamos iniciar o Burp Suite.
- Clique no menu Applications no canto superior esquerdo da tela.
- Vá para Web e selecione Burp Suite Community Edition.
- Uma caixa de diálogo aparecerá. Mantenha as configurações padrão (
Temporary project) e clique em Next. - Na próxima tela, selecione
Use Burp defaultse clique em Start Burp.
Assim que o Burp Suite estiver em execução, abra seu navegador integrado.
- Vá para a aba
Proxye, em seguida, para a sub-abaIntercept. - Clique no botão
Open Browser. Uma nova janela do navegador Chromium será aberta, pré-configurada para rotear o tráfego através do Burp Suite.
Agora, vamos realizar uma ação para capturar. Para este laboratório, usaremos um site de teste da PortSwigger.
- No navegador do Burp, navegue até o seguinte URL:
https://portswigger.net/web-security/csrf/lab-no-defenses - Clique em
Access the lab. Você será redirecionado para um site de blog. - Faça login na aplicação usando as credenciais
wiener:peter. Você pode encontrar essas credenciais na descrição do laboratório na página. - Após o login, você verá um formulário "Update email". Insira um novo endereço de e-mail, por exemplo,
test@example.com, e clique emUpdate email.
Finalmente, vamos encontrar a requisição no Burp Suite.
- Volte para a janela do Burp Suite.
- Navegue até a aba
Proxye depois para a sub-abaHTTP history. - Procure na lista de requisições. Você deverá ver uma requisição
POST /my-account/change-email. Esta é a requisição que altera o estado que queremos direcionar. Clique nela para ver seus detalhes no painel abaixo.
POST /my-account/change-email HTTP/2
Host: your-lab-id.web-security-academy.net
...
email=test%40example.com
Você agora interceptou e identificou com sucesso uma requisição que altera o estado.
Clique com o Botão Direito na Requisição
Nesta etapa, você usará o menu de contexto do Burp Suite para acessar seus recursos avançados. O menu de contexto é uma parte central do fluxo de trabalho do Burp Suite, fornecendo acesso rápido a várias ferramentas que podem ser aplicadas a uma requisição selecionada.
Com a requisição POST /my-account/change-email ainda destacada na aba Proxy > HTTP history, realize a seguinte ação:
- Mova o cursor do mouse sobre a linha da requisição selecionada.
- Clique com o botão direito na requisição.
Isso abrirá um grande menu de contexto com muitas opções. Este menu é sensível ao contexto, o que significa que as opções disponíveis podem mudar dependendo de onde você clica. Ao clicar com o botão direito em uma requisição, você obtém uma lista de ações que pode realizar nessa requisição específica, como enviá-la para outras ferramentas do Burp, como Repeater, Intruder ou, no nosso caso, o gerador de CSRF PoC.
Reserve um momento para observar as opções disponíveis e se familiarizar com as possibilidades.
Ir para Engagement tools > Generate CSRF PoC
Nesta etapa, você navegará pelo menu de contexto para encontrar e iniciar o gerador de CSRF PoC. Esta ferramenta é categorizada em "Engagement tools" (Ferramentas de Engajamento), que são recursos projetados para auxiliar na demonstração e relatório de vulnerabilidades.
Após clicar com o botão direito na requisição na etapa anterior, o menu de contexto agora está visível. Siga estes passos para gerar o PoC:
- No menu de contexto, localize e passe o mouse sobre a opção Engagement tools. Isso revelará um sub-menu.
- No sub-menu que aparece, clique em Generate CSRF PoC.
Uma nova janela intitulada "Generate CSRF PoC" será aberta. O Burp Suite analisou automaticamente a requisição POST que você selecionou e gerou uma página HTML simples que, ao ser submetida, repetirá essa mesma requisição. Este é o cerne de um ataque CSRF: enganar o navegador de um usuário para que ele submeta uma requisição a um site onde já está autenticado.
Revisar o Formulário HTML Gerado
Nesta etapa, você examinará o código HTML gerado pelo Burp Suite. Compreender este código é crucial para entender como o ataque CSRF funciona.
Na janela "Generate CSRF PoC", você verá um bloco de código HTML. Ele deve se parecer com o seguinte:
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>
history.pushState("", "", "/");
</script>
<form
action="https://your-lab-id.web-security-academy.net/my-account/change-email"
method="POST"
>
<input type="hidden" name="email" value="test@example.com" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
Vamos analisar os componentes chave deste HTML:
<form action="..." method="POST">: Isso define um formulário HTML. O atributoactionespecifica a URL para onde os dados do formulário serão enviados — neste caso, o mesmo endpoint usado para alterar o endereço de e-mail. Omethod="POST"corresponde ao método da requisição original.<input type="hidden" name="email" value="...">: Este é um campo de formulário oculto. Ele contém o parâmetro exigido pelo servidor para realizar a ação. Aqui, é o parâmetroemailcom o valortest@example.com. Como ele está oculto, uma vítima que visitar esta página não o verá.<input type="submit" value="Submit request" />: Isso cria o botão que uma vítima precisaria clicar para acionar o ataque. Em ataques mais avançados, esta submissão pode ser acionada automaticamente usando JavaScript.
Esta página HTML simples é um Proof of Concept (Prova de Conceito) funcional para a vulnerabilidade CSRF.
Usar o Recurso 'Test in browser' para Verificar o PoC
Nesta etapa, você usará o PoC gerado para confirmar a vulnerabilidade CSRF. O Burp Suite facilita isso com um recurso de teste integrado.
Na janela "Generate CSRF PoC", você encontrará um botão rotulado Test in browser. Este recurso permite que você teste o PoC diretamente na mesma sessão do navegador onde você está autenticado no aplicativo alvo.
- Clique no botão Test in browser.
- O Burp Suite fornecerá uma URL única. Clique no botão Copy para copiar esta URL para a sua área de transferência.
- Volte para o navegador integrado do Burp (a janela Chromium).
- Cole a URL copiada na barra de endereço e pressione Enter.
Uma nova página será carregada, exibindo apenas um botão "Submit request". Este é o seu PoC em ação.
- Clique no botão Submit request.
O navegador enviará a requisição POST para a aplicação web. Como você já está logado (seu navegador possui o cookie de sessão), a aplicação processará a requisição como se você a tivesse feito legitimamente.
Para confirmar que o ataque foi bem-sucedido:
- Navegue de volta para a aba com a aplicação de blog.
- Atualize a página ou clique no link "My account".
- Você deverá ver que o e-mail foi atualizado para
test@example.com(ou qualquer valor que estivesse no seu PoC). O laboratório também deverá exibir uma mensagem "Congratulations, you solved the lab!".
Isso confirma que o PoC CSRF funciona e que a aplicação é vulnerável.
Resumo
Neste laboratório, você aprendeu com sucesso como usar o Burp Suite para gerar e testar um Proof of Concept (PoC) de Cross-Site Request Forgery (CSRF).
Você praticou o fluxo de trabalho completo para esta tarefa:
- Interceptar uma requisição que altera o estado usando o proxy do Burp.
- Usar o menu de contexto para acessar
Engagement tools. - Gerar o PoC CSRF com um único clique.
- Analisar o HTML resultante para entender o mecanismo do ataque.
- Testar o PoC no navegador para confirmar a vulnerabilidade.
Esta habilidade é essencial para qualquer profissional de segurança de aplicações web, pois fornece uma maneira clara e eficaz de demonstrar o impacto real de uma falha CSRF para desenvolvedores e partes interessadas.
