Mitmproxy

Escritor | 12:13 Leave a Comment
mitmproxy é uma ferramenta console que permite o exame interativo e modificação do tráfego HTTP. Ela difere de mitmdump em que todos os fluxos são mantidos na memória, o que significa que ele está destinado a tomar e manipular amostras de pequeno-ish. Use o ? tecla de atalho para visualizar, documentação sensível ao contexto de qualquer mitmproxy tela.

Fluxo lista

A lista de fluxo mostra um índice de fluxos capturados em ordem cronológica.
  • 1 : A requisição GET, retornando uma resposta 302 Redirect.
  • 2 : Um pedido GET, retornando 16.75kb de dados text / html.
  • 3 : Um pedido repetido.
  • 4 : fluxos interceptado são indicados com texto de laranja. O usuário pode editar esses fluxos, e depois aceitá-las (usando a um key) para continuar. Neste caso, o pedido tenha sido recebido no caminho para o servidor.
  • 5 : Uma resposta recebido do servidor no caminho para o cliente.
  • 6 : O log de ​​eventos pode ser ligado e desligado através do e tecla de atalho. Este painel mostra os eventos e erros que podem não resultar em um fluxo que aparece no painel de fluxo.
  • 7 : Número de Fluxo.
  • 8 : Várias informações sobre o estado de mitmproxy. Neste caso, temos um padrão de intercepção definido como ". *".
  • 9 : Bind endereço indicador - mitmproxy está escutando na porta 8080 de todas as interfaces.

Visualização Fluxo

Fluxo de Vista permite inspecionar e manipular um único fluxo:
  • 1 : resumo Flow.
  • 2 : As guias de solicitação / resposta, mostrando-lhe que parte do fluxo que você está vendo.No exemplo acima, nós estamos vendo o Response. Hit tab para alternar entre a resposta e o Pedido.
  • 3 : cabeçalhos.
  • 4 : Body.
  • 5 : indicador View Mode. Neste caso, estamos a ver o corpo em hex modo. Os outros modos disponíveis são consideravelmente , que utiliza uma série de heurísticas para mostrar-lhe uma visão simpática de vários tipos de conteúdo e crua , o que mostra exatamente o que está lá, sem quaisquer alterações. Você pode alterar os modos usando o m -chave.

Grade do Editor

Grande parte dos dados que nós gostaríamos de interagir com em mitmproxy está estruturado.Por exemplo, cabeçalhos, consultas e dados de formulários podem ser pensado como uma lista de pares de chave / valor. Mitmproxy tem um built-in editor que estabelece este tipo de dados em uma grade para a manipulação fácil.
No momento, o Editor de grade é usado em quatro partes de mitmproxy:
  • Pedido de edição ou cabeçalhos de resposta ( e para editar, então h para cabeçalhos em vista de fluxo)
  • Editando uma string de consulta ( e para editar, então q para consulta no modo de fluxo)
  • Editando uma URL codificada forma ( e para editar, então f para formulário no modo de fluxo)
  • Padrões de substituição de edição ( R globalmente)
Se não houver nenhum dado, um editor vazio será iniciado para que você adicione um pouco.Aqui é o editor que mostra os cabeçalhos de um pedido:
Para editar, navegue até a chave ou o valor que você deseja modificar usando as teclas de navegação de seta ou vi, e pressione enter. A cor de fundo muda para mostrar que você está no modo de edição para o campo especificado:
Modifique o campo como desejado, em seguida, pressione Escape para sair do modo de edição quando você está feito. Você também pode adicionar uma linha ( a chave), excluir uma linha ( d ) Tecla, gerar um editor externo em um campo ( e fundamental). Não deixe de consultar a ajuda sensível ao contexto ( ? key) para mais.

Exemplo: Intercepção

mitmproxy funcionalidade interceptação 's permite pausar uma solicitação HTTP ou resposta, inspecionar e modificá-lo, e depois aceitá-lo para enviá-lo para o servidor ou cliente.

1: Definir um padrão de intercepção

Nós pressionamos i para definir um padrão de interceptação. Neste caso, o q ~ padrão de filtro dizmitmproxy para interceptar todas as solicitações. Para obter a sintaxe do filtro completa, consulte o expressões de filtro seção deste documento, ou o built-in função de ajuda em mitmproxy .

2: ligações interceptadas são indicados com texto de laranja:

3: Agora você pode visualizar e modificar o pedido:

Neste caso, temos visto o pedido, selecionando-o, apertou e para "editar" e m para "método" para mudar o método de solicitação HTTP.

4: Aceite a interceptação para continuar:

Finalmente, pressionar uma a aceitar o pedido modificado, que é então enviado para o servidor.Neste caso, nós mudamos o pedido de um HTTP GET para Opções e servidor do Google respondeu com um "Método não permitido" 405.