Ao usar o Burp Suite, você pode frequentemente se deparar com dados que usam alguma forma de codificação. A codificação é geralmente projetada para configurar os dados para que o sistema do computador possa manipulá-los; infelizmente, geralmente torna impossível, ou pelo menos difícil de ler. Em alguns casos, os dados podem ser decodificados de volta para uma forma legível por humanos, mas em outros casos, os dados codificados já eram aleatórios e não produzirão resultados inteligíveis. O Burp inclui uma ferramenta chamada “Decodificador” para ajudar a decodificar os dados para que você possa ver o que dizem ou se não contêm dados legíveis por humanos.
Como decodificar dados
Para adicionar dados ao decodificador, você pode digitá-los manualmente, colá-los da área de transferência ou clicar com o botão direito do mouse nas guias Destino, Proxy, Intruso ou Repetidor e clicar em “Enviar para decodificador”. Você pode fazer isso com solicitações inteiras; entretanto, geralmente será mais útil limitá-lo apenas aos dados que você deseja decodificar, destacando-os antes de clicar com o botão direito.
Clique com o botão direito do mouse nos dados que deseja decodificar e clique em “Enviar para decodificador”.
Depois de obter os dados no Decoder, você pode decodificá-los clicando no botão “Decodificar como” à direita e selecionando o esquema de codificação que você acha que está usando. Todas as opções funcionarão para qualquer entrada, mas podem não produzir caracteres imprimíveis, o que geralmente significa que não estava usando essa codificação ou que os dados foram gerados apenas aleatoriamente.
As codificações que você pode escolher são Plain, URL, HTML, Base64, ASCII hex, Hex, Octal, Binary e Gzip. Selecione um deles na caixa suspensa e o Burp exibirá a saída em uma nova caixa abaixo. A nova caixa vem com seu próprio conjunto de controles idênticos, portanto, se você descobrir que a saída ainda está codificada, poderá decodificá-la novamente, mesmo se o tipo de decodificação for diferente. Por exemplo, se você decodificar uma string Base64 e encontrar outra string Base64, poderá decodificá-la também.
Dica: você pode encadear muitos níveis de decodificação; você não está limitado a apenas um ou dois estágios.
Você pode decodificar os dados e, em seguida, decodificar o resultado novamente, se houver vários níveis de codificação.
Como codificar dados
Você também pode usar o decodificador para codificar dados em todos os métodos de codificação disponíveis clicando em “Codificar como” e selecionando um método de codificação. Isso é útil se você precisar decodificar uma string, modificá-la e, em seguida, precisar recodificá-la para inserir a alteração em uma solicitação da web.
Dica: a codificação não é particularmente inteligente; por exemplo, caracteres alfanuméricos não precisam ser codificados em URLs porque são caracteres válidos, mas o codificador de URL codificará todos os caracteres.
Você também pode gerar um hash de uma string clicando em “Hash” e selecionando um algoritmo. O Burp não oferece uma maneira de reverter um hash, pois isso não é possível porque os hashes são funções unilaterais.
Dica: Qualquer combinação de decodificação, codificação e hashing é possível com Decoder, embora algumas ordens de operação não façam sentido lógico.
Você também pode usar o decodificador para codificar dados ou hash.
Você pode decodificar, codificar ou hash uma parte de uma string no Decoder, destacando-a antes de selecionar como ela deve ser tratada. Isso é útil se você tiver duas variáveis codificadas com métodos diferentes.
Observação: o decodificador não oferece suporte a subguias, portanto, você só pode gerenciar uma entrada de cada vez. Tenha o cuidado de copiar o resultado de um processo antes de enviar mais dados para o decodificador, a menos que você não queira perdê-lo.