
Extensão do Burp para testar problemas de autorização. Repetição automatizada de requisições e extração de valores de parâmetros em tempo real.
A extensão do Burp ajuda a encontrar falhas de autorização. Basta navegar pela aplicação web com um usuário de altos privilégios e deixar o Auth Analyzer repetir suas requisições para qualquer usuário não privilegiado definido. Com a possibilidade de definir Parâmetros, o Auth Analyzer é capaz de extrair e substituir automaticamente valores de parâmetros. Com isso, por exemplo, tokens CSRF ou até mesmo características completas de sessão podem ser extraídos automaticamente de respostas e substituídos em requisições posteriores. Cada resposta será analisada e marcada com seu status de bypass.
Existem outras extensões existentes do Burp que fazem basicamente coisas semelhantes. No entanto, a força da funcionalidade de parâmetros e extração automática de valores é a principal razão para escolher o Auth Analyzer. Com isso, você não precisa conhecer o conteúdo dos dados que precisam ser trocados. Você pode facilmente definir seus parâmetros e cookies e o Auth Analyzer capturará em tempo real os valores necessários. O Auth Analyzer não realiza nenhuma requisição de pré-voo. Ele basicamente faz exatamente o mesmo que sua aplicação web, com os papéis/sessões de usuário definidos por você.
(1) Crie ou Clone uma Sessão para cada usuário que deseja testar.
(2) Salve e carregue a configuração da sessão
(3) Especifique as características da sessão (Cabeçalho(s) e/ou Parâmetro(s) a serem substituídos)
(4) Defina Filtros se necessário
(5) Iniciar / Parar e Pausar o Auth Analyzer
(6) Especifique o filtro da tabela
(7) Navegue pela Aplicação Web com outro usuário e acompanhe os resultados das requisições repetidas
(8) Exporte os dados da tabela para XML ou HTML
(9) Analise manualmente as requisições / respostas originais e repetidas

Se você tiver os recursos que deseja testar em seu sitemap, é muito fácil e rápido realizar seus testes de autorização. No primeiro passo, defina as sessões que deseja testar. Em seguida, expanda seu sitemap, selecione os recursos e repita as requisições através do menu de contexto. Além disso, você pode definir algumas opções de quais requisições devem ser repetidas e quais não. Com isso, você pode realizar testes de autorização de um site complexo em segundos.
O Auth Analyzer tem a possibilidade de definir parâmetros que são substituídos antes que a requisição para a sessão dada seja repetida. O valor do parâmetro pode ser definido de acordo com diferentes requisitos.
O valor do parâmetro será extraído se ocorrer em uma resposta com uma das seguintes condições:
Uma resposta com um Cabeçalho Set-Cookie com um nome de Cookie definido como o Nome do Campo de Extração
Uma Resposta de Documento HTML contém um campo de entrada com o atributo name definido como o Nome do Campo de Extração
Uma Resposta JSON contém uma chave definida como o Nome do Campo de Extração
Por padrão, o Auth Analyzer tenta extrair automaticamente o valor do parâmetro de todas as localizações. No entanto, clicando no ícone de configurações do parâmetro, você pode restringir a localização de extração automática conforme necessário.

O parâmetro será extraído se a resposta contiver a String Inicial e a String Final especificadas em uma linha. A String De-Para pode ser definida manualmente ou diretamente pelo menu de contexto correspondente. Basta marcar a palavra que deseja extrair em qualquer resposta e definir como De-Para Extrair para o parâmetro desejado.
Por padrão, o Auth Analyzer tenta extrair o valor do cabeçalho e do corpo na maioria das respostas textuais. No entanto, clicando no ícone de configurações do parâmetro, você pode restringir a localização de extração De-Para conforme necessário.

Um valor de parâmetro estático pode ser definido. Isso pode ser usado, por exemplo, para tokens CSRF estáticos ou credenciais de login.
Você será solicitado a fornecer uma entrada se o parâmetro definido estiver presente em uma requisição. Isso pode ser usado, por exemplo, para definir códigos 2FA.
Se um valor for definido (extraído ou definido pelo usuário), ele será substituído se o parâmetro correspondente estiver presente em uma requisição. As condições para substituição de parâmetros são:
O parâmetro será substituído se estiver presente em um dos seguintes locais:

No Caminho (ex.: /api/user/99/profile --> se um parâmetro chamado user estiver presente, o valor 99 será substituído)
Parâmetro de URL (ex.: email=hans.wurst[a]gmail.com)
Parâmetro de Cookie (ex.: PHPSESSID=mb8rkrcdg8765dt91vpum4u21v)
Parâmetro do Corpo seja Codificado por URL ou Dados de Formulário Multipart
Parâmetro JSON (ex.: {"email":"hans.wurst[a]gmail.com"})
Por padrão, o valor do parâmetro será substituído em cada localização. No entanto, clicando no ícone de configurações do parâmetro, você pode restringir a localização conforme necessário.

O parâmetro definido pode ser removido completamente, por exemplo, para testar mecanismos de verificação CSRF.