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
O 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.