Introdução
Neste laboratório, você aprenderá a usar um dos recursos poderosos do Burp Suite: "Comparar mapas de sites" (Compare site maps). Este recurso é essencial para testes de segurança de aplicações web, especialmente para identificar vulnerabilidades de autorização. Ao comparar a estrutura e o conteúdo do site acessíveis a usuários com diferentes níveis de privilégio, você pode identificar rapidamente endpoints ou dados que estão indevidamente expostos.
Você realizará as seguintes ações:
- Iniciar uma aplicação web local simples com duas funções de usuário: um usuário padrão e um administrador.
- Usar o navegador integrado do Burp Suite para explorar a aplicação como um usuário de baixo privilégio.
- Iniciar o processo de comparação do mapa de sites, salvando a visualização do usuário de baixo privilégio como o primeiro mapa.
- Fazer login como um usuário de alto privilégio e explorar a aplicação novamente para popular o mapa de sites com novas funções administrativas.
- Concluir a comparação e analisar os resultados para identificar conteúdo e endpoints acessíveis apenas ao administrador.
Navegar por uma Aplicação como um Usuário de Baixo Privilégio
Nesta etapa, você iniciará o Burp Suite, configurará seu navegador e navegará pela aplicação alvo como um usuário padrão de baixo privilégio. Isso preencherá o mapa de sites do Burp com todos os endpoints e recursos acessíveis a este usuário.
Primeiro, abra o Burp Suite. Você pode encontrá-lo no menu de aplicações, geralmente em Applications -> Other -> Burp Suite Community Edition. Quando solicitado, selecione um projeto temporário e clique em Next, depois em Start Burp.
Assim que o Burp Suite estiver em execução, você precisará usar seu navegador embutido para garantir que todo o tráfego seja corretamente proxy.
- Vá para a aba
Proxy, depois para a sub-abaIntercept. - Clique no botão
Open Browser. Uma nova janela do navegador Chromium será aberta.
Agora, use este navegador para interagir com a aplicação web.
- Na barra de endereços do novo navegador, navegue até
http://127.0.0.1:5000. - Você verá uma página de login. Digite
userpara o nome de usuário epasswordpara a senha. - Clique no botão
Login. - Você será redirecionado para o painel do usuário. Clique em quaisquer links se houver, mas para esta aplicação simples, apenas visualizar o painel é suficiente.
Agora, volte para a janela principal do Burp Suite e navegue até a aba Target -> Site map. Você verá a estrutura da aplicação sendo mapeada com base na sua navegação.
Em Target > Site map, Selecione o Host e 'Compare site maps'
Nesta etapa, você iniciará o processo de comparação de mapas de sites. Você já preencheu o mapa de sites com a perspectiva de um usuário de baixo privilégio. Agora, você informará ao Burp Suite que deseja usar este mapa atual como o primeiro ponto de comparação.
- Na janela do Burp Suite, certifique-se de estar na aba
Target->Site map. - No painel esquerdo, você verá uma visualização em árvore dos sites que visitou. Encontre e selecione o host da nossa aplicação, que é
http://127.0.0.1:5000. - Clique com o botão direito do mouse no host
http://127.0.0.1:5000. Isso abrirá um menu de contexto com várias opções. - No menu de contexto, navegue até
Engagement toolse, em seguida, clique emCompare site maps.
Esta ação abrirá o assistente "Compare site maps", que o guiará pela configuração da comparação.
(Descrição da imagem: Uma captura de tela mostrando o menu de contexto do clique com o botão direito no mapa de sites do Burp Suite, com o cursor destacando a opção 'Compare site maps' em 'Engagement tools'.)
No Assistente, Selecione 'Use current site map' para Map 1
Nesta etapa, você configurará o primeiro dos dois mapas de sites para comparação. O assistente que você abriu na etapa anterior permite definir a origem para ambos os mapas.
O assistente "Compare site maps" está agora aberto. Ele possui duas seções principais, uma para "Site map 1" e outra para "Site map 2". Você configurará o primeiro mapa agora e o segundo mapa mais tarde.
- Na área de configuração do "Site map 1", você verá várias opções de onde carregar o mapa.
- Selecione o botão de rádio rotulado
Use current site map. Isso instrui o Burp a tirar um instantâneo do mapa de sites como ele existe neste momento (refletindo a sessão do usuário de baixo privilégio) e usá-lo como linha de base para a comparação. - Não clique em
OKainda. O assistente precisa ser configurado para ambos os mapas. Por enquanto, você definiu o primeiro mapa. Você deixará este assistente aberto enquanto realiza as próximas ações.
Você agora definiu com sucesso o primeiro mapa de sites para comparação. O assistente aguardará que você defina o segundo mapa.
Faça login como um Usuário de Alto Privilégio e Re-solicite o Mapa do Site
Nesta etapa, você mudará para uma conta de usuário com privilégios elevados e navegará pela aplicação novamente. Isso adicionará endpoints novos, exclusivos para administradores, ao mapa de sites do Burp, que é exatamente o que queremos detectar na comparação.
- Retorne à janela do navegador Chromium incorporado ao Burp.
- Navegue de volta para a página de login em
http://127.0.0.1:5000. Isso efetivamente desconectará você da conta de 'usuário'. - Na página de login, insira
adminpara o nome de usuário eadminpasswordpara a senha. - Clique no botão
Login. - Você será redirecionado para o painel (dashboard), que agora exibe uma mensagem de boas-vindas para o usuário 'admin' e inclui um novo link:
Go to Admin Panel. - Clique no link
Go to Admin Panel. Isso o levará para a página/admin, que não era acessível ao usuário padrão.
Ao realizar essas ações, você fez com que o Burp Suite registrasse requisições para novos endpoints (como /admin) e visse respostas diferentes para endpoints existentes (como /dashboard). O mapa de sites ativo no Burp agora está atualizado com essas novas informações.
Selecione 'Use current site map' para Map 2 e Visualize as Diferenças
Nesta etapa final, você concluirá a configuração da comparação e analisará os resultados para encontrar as diferenças entre as sessões de baixo e alto privilégio.
- Retorne à janela do Burp Suite, onde o assistente "Compare site maps" ainda deve estar aberto.
- Agora, concentre-se na área de configuração do "Site map 2".
- Assim como você fez para o primeiro mapa, selecione o botão de rádio rotulado
Use current site map. Desta vez, o mapa "atual" contém todas as requisições das sessões de baixo e alto privilégio. - Clique no botão
OKpara executar a comparação.
Uma nova janela "Site map comparison" aparecerá, exibindo os resultados. Esta janela possui três painéis principais mostrando:
- Items only in map 1: Endpoints que existiam na primeira sessão, mas não na segunda.
- Items only in map 2: Endpoints que foram descobertos apenas na segunda sessão. É aqui que você encontrará problemas de autorização.
- Items with different responses: Endpoints que ambos os usuários puderam acessar, mas que retornaram conteúdo diferente.
Observe a lista "Items only in map 2". Você deverá ver o endpoint /admin. Isso informa imediatamente que a página /admin só é acessível ou descoberta pelo usuário de alto privilégio.
Clique na entrada /dashboard na lista "Items with different responses". Na parte inferior, você pode ver a requisição e a resposta para cada mapa. Use o botão Diff para ver uma comparação lado a lado, que destacará o link adicional "Go to Admin Panel" disponível para o administrador.
Resumo
Neste laboratório, você utilizou com sucesso o recurso "Compare site maps" do Burp Suite para analisar os controles de acesso de uma aplicação. Você aprendeu como capturar sistematicamente o estado de uma aplicação sob a perspectiva de dois usuários diferentes e, em seguida, compará-los para identificar automaticamente as diferenças.
Especificamente, você descobriu um endpoint administrativo (/admin) que não era visível para um usuário padrão, um exemplo clássico de uma vulnerabilidade de autorização que esta técnica ajuda a descobrir. Este método é uma parte fundamental de uma avaliação completa de segurança de aplicações web, permitindo que você mapeie eficientemente a superfície de ataque e encontre potenciais falhas de segurança.
