Introdução
Burp Suite é uma plataforma poderosa para testes de segurança de aplicações web. Uma das suas ferramentas mais versáteis é o Burp Intruder, que permite automatizar ataques personalizados contra aplicações web. O Intruder possui vários tipos de ataque, cada um projetado para diferentes cenários de teste.
O tipo de ataque Pitchfork é usado quando você precisa testar múltiplos parâmetros com payloads diferentes, mas relacionados, simultaneamente. Ele utiliza uma lista de payloads separada para cada posição marcada. Durante o ataque, o Intruder pega o primeiro payload da primeira lista e o combina com o primeiro payload da segunda lista, depois o segundo com o segundo, e assim por diante. Isso é ideal para testar coisas como uma lista de pares conhecidos de nome de usuário e senha.
Neste laboratório, você aprenderá como configurar e executar um ataque Pitchfork no Burp Intruder contra um formulário de login simples.
Enviar um Pedido com Dois Parâmetros para o Intruder
Nesta etapa, você iniciará o Burp Suite, capturará um pedido de login e o enviará para a ferramenta Intruder para modificação. O ambiente de laboratório já iniciou uma aplicação web simples para você testar.
Primeiro, abra um terminal a partir da área de trabalho e inicie o Burp Suite. Normalmente, você o encontrará no menu de aplicações ou poderá iniciá-lo a partir da linha de comando. Para este laboratório, nós o iniciaremos a partir do terminal.
burpsuite
No assistente de inicialização, selecione "Temporary project" (Projeto temporário) e clique em "Next" (Próximo), em seguida, clique em "Start Burp" (Iniciar Burp).
Assim que o Burp Suite estiver aberto, vá para a aba Proxy e, em seguida, para a sub-aba Intercept. Clique no botão "Open Browser" (Abrir Navegador). Isso iniciará um navegador Chromium pré-configurado para funcionar com o proxy do Burp.
No navegador do Burp, navegue até a aplicação alvo inserindo o seguinte URL:
http://127.0.0.1:8000
Você verá um formulário de login simples. Volte para a janela do Burp Suite e desative a interceptação clicando no botão "Intercept is on" (Interceptação está ativa) para que ele mude para "Intercept is off" (Interceptação está desativada). Isso permite que os pedidos fluam livremente para a aplicação.
Agora, retorne ao navegador. Insira test para o nome de usuário e test para a senha, e clique em "Submit" (Enviar).
Volte para a janela do Burp Suite e navegue até a aba Proxy > HTTP history (Histórico HTTP). Você deverá ver um pedido POST /login na lista de histórico. Clique com o botão direito neste pedido e selecione "Send to Intruder" (Enviar para Intruder).
Esta ação envia uma cópia do pedido para a ferramenta Intruder, onde você pode configurar o ataque. Você deverá ver a aba Intruder destacada.
Adicionar Marcadores de Payload a Ambos os Parâmetros
Nesta etapa, você definirá as posições na requisição onde o Intruder deve colocar seus payloads. Para um ataque Pitchfork, você precisa marcar cada valor de parâmetro que deseja testar (fuzz).
Navegue até a aba Intruder e, em seguida, para a sub-aba Positions. Você verá a requisição POST /login capturada.
O Burp Intruder frequentemente identifica automaticamente posições potenciais de payload e as marca com símbolos §. Para este laboratório, queremos controlar as posições com precisão. Primeiro, clique no botão Clear § no lado direito para remover quaisquer marcadores padrão.
O corpo da requisição na parte inferior da janela se parece com isto:
username=test&password=test
Queremos inserir payloads nos valores de ambos os parâmetros username e password.
- No editor de requisição, selecione o valor
testpara o parâmetrousername. - Clique no botão
Add §à direita. O parâmetro agora deve parecerusername=§test§. - Em seguida, selecione o valor
testpara o parâmetropassword. - Clique no botão
Add §novamente. O parâmetro agora deve parecerpassword=§test§.
Seu corpo de requisição agora deve ter duas posições marcadas:
username=§test§&password=§test§
Esses marcadores dizem ao Intruder exatamente onde colocar os payloads dos conjuntos de payloads correspondentes.
Definir o Tipo de Ataque para 'Pitchfork'
Nesta etapa, você selecionará o tipo de ataque Pitchfork. Esta é a configuração crucial que habilita o comportamento de injeção de payload pareado que queremos testar.
Ainda na aba Intruder > Positions, localize o menu suspenso "Attack type" (Tipo de ataque) na parte superior da tela. Provavelmente estará definido como Sniper por padrão.
Clique no menu suspenso. Você verá quatro opções:
- Sniper: Usa um único conjunto de payloads e itera por cada posição uma por uma.
- Battering ram: Usa um único conjunto de payloads e coloca o mesmo payload em todas as posições de uma vez.
- Pitchfork: Usa múltiplos conjuntos de payloads. Ele pareia o primeiro payload do conjunto 1 com o primeiro do conjunto 2, o segundo com o segundo, e assim por diante.
- Cluster bomb: Usa múltiplos conjuntos de payloads e testa todas as combinações possíveis de payloads.
Para o nosso cenário de teste de pares de nome de usuário/senha, Pitchfork é a escolha correta. Selecione Pitchfork da lista.
Assim que você selecionar Pitchfork, notará que a interface não muda muito nesta tela, mas o Burp agora está preparado para lidar com duas listas de payloads separadas correspondentes aos dois marcadores de payload que você definiu na etapa anterior.
Configurar Duas Listas de Payloads Separadas na Aba Payloads
Nesta etapa, você configurará as duas listas de payloads que o ataque Pitchfork utilizará. A primeira lista conterá nomes de usuário e a segunda conterá senhas correspondentes.
Navegue até a sub-aba Payloads dentro da aba Intruder.
Como você selecionou o tipo de ataque Pitchfork e tem duas posições de payload, você verá um menu suspenso "Payload set" (Conjunto de payloads). Isso permite que você configure cada lista de payloads independentemente.
Configurar Conjunto de Payloads 1 (Nomes de Usuário):
- Certifique-se de que o menu suspenso "Payload set" esteja definido como
1. - O "Payload type" (Tipo de payload) deve ser "Simple list" (Lista simples).
- Na seção "Payload Options" (Opções de Payload) abaixo, clique no botão
Clear(Limpar) para remover quaisquer itens padrão. - Clique no botão
Add(Adicionar) e insira os seguintes nomes de usuário, um por um:userguestadmintest
Configurar Conjunto de Payloads 2 (Senhas):
- Agora, selecione
2no menu suspenso "Payload set". - Novamente, certifique-se de que o "Payload type" seja "Simple list".
- Clique no botão
Clearpara esvaziar a lista. - Clique no botão
Adde insira as seguintes senhas, que correspondem aos nomes de usuário na primeira lista:userpassguestpassword123test
Você agora configurou duas listas de payloads distintas. O ataque Pitchfork as pareará em ordem: (user, userpass), (guest, guest), (admin, password123) e (test, test). O número total de requisições será 4, que é o tamanho das suas listas.
Executar o Ataque e Observar a Injeção de Payload Pareada
Nesta etapa final, você iniciará o ataque e analisará os resultados para ver o ataque Pitchfork em ação.
Com o tipo de ataque e os payloads configurados, você está pronto para começar. No canto superior direito da aba Intruder, clique no botão "Start attack" (Iniciar ataque).
Uma nova janela "Intruder attack (1)" será aberta, exibindo os resultados em tempo real. Observe a tabela de resultados. Você verá colunas para "Payload 1" e "Payload 2".
Note como os payloads são pareados exatamente como você os configurou:
- Requisição 1 usa
usereuserpass. - Requisição 2 usa
guesteguest. - Requisição 3 usa
adminepassword123. - Requisição 4 usa
testetest.
Agora, olhe para as colunas "Status" e "Length" (Comprimento). A maioria das requisições provavelmente terá o mesmo código de status (por exemplo, 200) e comprimento de resposta, indicando uma tentativa de login falha. No entanto, uma requisição deve se destacar. A requisição com o par de payloads admin e password123 é o conjunto de credenciais correto. Você deverá ver um comprimento de resposta diferente para esta requisição, indicando uma resposta diferente do servidor (por exemplo, uma mensagem "Login successful!" - Login bem-sucedido!).
Exemplo de resultados esperados:
| Requisição | Payload 1 | Payload 2 | Status | Comprimento |
|---|---|---|---|---|
| 1 | user | userpass | 200 | 450 |
| 2 | guest | guest | 200 | 450 |
| 3 | admin | password123 | 200 | 452 |
| 4 | test | test | 200 | 450 |
Ao observar essa diferença, você identificou com sucesso as credenciais válidas usando um ataque Pitchfork. Agora você pode fechar a janela de ataque.
Resumo
Neste laboratório, você configurou e executou com sucesso um ataque Pitchfork usando o Burp Intruder.
Você aprendeu a:
- Interceptar uma requisição web usando o Burp Proxy e enviá-la para o Intruder.
- Definir manualmente marcadores de payload em múltiplas posições de parâmetros.
- Selecionar o tipo de ataque
Pitchfork, que é projetado para fuzzing multi-parâmetro relacionado. - Configurar duas listas de payloads separadas e correspondentes para os parâmetros de nome de usuário e senha.
- Lançar o ataque e analisar os resultados para identificar anomalias, encontrando com sucesso as credenciais de login corretas ao observar a injeção de payload pareada.
O ataque Pitchfork é uma técnica valiosa para testar cenários onde os dados em múltiplos parâmetros estão vinculados, como nomes de usuário e senhas, ou quaisquer outros conjuntos de dados pareados.
