
AuthMatrix é uma extensão do Burp Suite que oferece uma maneira simples de testar autorização em aplicações web e serviços web.
AuthMatrix é uma extensão do Burp Suite que fornece uma maneira simples de testar autorização em aplicações web e serviços web. Com o AuthMatrix, os testadores se concentram em definir antecipadamente tabelas detalhadas de usuários, funções e requisições para sua aplicação alvo específica. Essas tabelas são estruturadas em um formato semelhante ao de uma matriz de controle de acesso, comum em várias metodologias de modelagem de ameaças.
Uma vez que as tabelas foram montadas, os testadores podem usar a interface simples de clicar para executar, iniciando todas as combinações de funções e requisições. Os resultados podem ser confirmados com uma interface de fácil leitura, codificada por cores, indicando quaisquer vulnerabilidades de autorização detectadas no sistema. Além disso, a extensão fornece a capacidade de salvar e carregar configurações alvo para testes de regressão simples.
O AuthMatrix pode ser instalado através da BApp Store do Burp Suite. Dentro do Burp Suite, selecione a guia Extender, selecione a BApp Store, selecione AuthMatrix e clique em instalar.
Para instalação manual, baixe o AuthMatrix.py deste repositório. Em seguida, dentro do Burp Suite, selecione a guia Extender, clique no botão Add, altere o tipo de extensão para Python e selecione o arquivo python do AuthMatrix.
O AuthMatrix requer a configuração do Burp Suite para usar Jython. Instruções fáceis para isso estão disponíveis na seguinte URL.
https://portswigger.net/burp/help/extender.html#options_pythonenv
Certifique-se de usar a versão 2.7.0 ou superior do Jython para garantir compatibilidade.
Crie funções (roles) para todos os níveis de privilégio dentro da aplicação alvo. (Funções comuns podem incluir Usuário, Administrador e Anônimo)
Crie usuários suficientes para se adequar a essas várias funções e marque as caixas de seleção para todas as funções às quais o usuário pertence. Funções "Single-User" contendo apenas um usuário serão configuradas automaticamente para auxiliar em testes de recursos entre usuários. Se não forem necessárias, sinta-se à vontade para excluir essas funções clicando com o botão direito na coluna da Tabela de Requisições.
Gere tokens de sessão para cada usuário a partir da guia Repeater e insira-os na coluna relevante dentro da Tabela de Usuários. Cookies podem ser enviados diretamente para os usuários através do menu de clique direito disponível no Repeater. O AuthMatrix analisará inteligentemente a string do cookie da tabela e os substituirá/adicionará às requisições quando aplicável.
NOTA: O campo Cookies é opcional. Se o alvo usar cabeçalhos HTTP, estes podem ser adicionados clicando no botão "New Header".
Para configurações mais avançadas, incluindo atualização automática de credenciais, veja o exemplo "Chains for Authenticating Users" abaixo.
De outra área do Burp Suite (ex.: guia Target, guia Repeater, etc.) clique com o botão direito em uma requisição e selecione "Send to AuthMatrix."
Na Tabela de Requisições do AuthMatrix, marque as caixas de seleção para todas as funções que estão autorizadas a fazer cada requisição HTTP.
Personalize uma expressão regular de Resposta (Response Regex) com base no comportamento esperado da resposta da requisição para determinar se a ação foi bem-sucedida.
Expressões regulares comuns incluem cabeçalhos de resposta HTTP, mensagens de sucesso no corpo, ou outras variações no corpo da página.
NOTA: As requisições podem ser configuradas para usar uma expressão regular de Falha (Failure Regex) através do menu de clique direito (ex.: Usuários autenticados nunca devem receber um HTTP 303)
Clique em Run na parte inferior para executar todas as requisições ou clique com o botão direito em várias requisições e selecione run. Observe que a tabela adjacente mostrará resultados codificados por cores.
Verde indica nenhuma vulnerabilidade detectada
Vermelho indica que a requisição pode conter uma vulnerabilidade
Azul indica que o resultado pode ser um falso positivo. (Isso geralmente significa que há um token de sessão inválido/expirado ou uma expressão regular incorreta)


Cadeias fornecem uma maneira de copiar um valor estático ou dinâmico para o corpo de uma requisição. Esses valores podem ser extraídos da resposta de uma requisição executada anteriormente (usando uma expressão regular) ou especificando valores de string estáticos específicos do usuário.
Os casos de uso mais comuns para Cadeias são:
Preencher requisições com Tokens CSRF válidos
Testar IDs/GUIDs recém-criados para problemas de autorização entre usuários
Automatizar autenticação e atualização de sessão
Uma entrada de Cadeia possui os seguintes valores:
Chain Name: um nome descritivo
Source: uma string de usuário estática definida na Tabela de Usuários ou o ID da requisição de origem na Tabela de Requisições
Extraction Regex: uma expressão regular usada para extrair um valor da resposta da requisição de origem. Este campo é usado apenas quando uma Requisição é especificada no campo anterior. Se usado, deve conter um agrupamento entre parênteses a ser extraído [ex.: (.*)]
Destinations: uma lista de IDs de Requisições nas quais o valor de origem será substituído.
Replacement Regex: uma expressão regular usada para determinar onde o valor de origem será inserido. Deve conter um agrupamento entre parênteses a ser substituído [ex.: (.*)]
Use Values From: especifica se deve usar o valor de origem obtido de um usuário selecionado (útil para testes de recursos entre usuários) ou usar os valores de todos os usuários e colocá-los nas requisições de destino do usuário correspondente (útil para tarefas de automação, como recuperação de token CSRF)
NOTA: As requisições são executadas na ordem das linhas, no entanto, se uma dependência de cadeia for detectada, o AuthMatrix executará as requisições na ordem necessária.



Para certos alvos, pode ser mais fácil configurar o AuthMatrix para detectar a condição de resposta quando uma requisição falhou. Por exemplo, se um site alvo retorna dados únicos em requisições bem-sucedidas, mas sempre retorna um HTTP 303 quando uma ação não autorizada é executada.
Neste modo, o AuthMatrix validará esta expressão regular para todos os usuários que não fazem parte de uma função com permissão de sucesso.
Para fazer isso, clique com o botão direito na requisição e selecione "Toggle Regex Mode". O campo de expressão regular será destacado em roxo para indicar que o AuthMatrix executará a requisição no Modo de Expressão Regular de Falha.
NOTA: A detecção e destaque de falsos positivos podem não funcionar no Modo de Expressão Regular de Falha
