Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
mitmproxy2swagger — Automaticamente faça engenharia reversa de APIs REST capturando tráfego. | Kitploit
Ferramentas/GitHubGitHub/alufers/mitmproxy2swagger
Engenharia ReversaColeta de InformaçõesSegurança WebSegurança de API
GitHubalufers/mitmproxy2swagger

mitmproxy2swagger

Automaticamente faça engenharia reversa de APIs REST capturando tráfego.

Ver Repositório
9.6k370há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

mitmproxy2swagger

PyPI version Arch Linux repository

https://user-images.githubusercontent.com/5400940/168086818-c48f60ab-3f95-42eb-b435-c8b1a6326b81.mp4

Uma ferramenta para converter automaticamente capturas do mitmproxy em especificações OpenAPI 3.0. Isso significa que você pode reverter a engenharia de APIs REST automaticamente apenas executando os aplicativos e capturando o tráfego.


🆕 NOVO!

Adicionado suporte para processar HAR exportado do DevTools do navegador. Veja Uso - HAR para mais detalhes.


Instalação

Primeiro você precisará de python3 e pip3.

root@kitploit:~
$ pip install mitmproxy2swagger
# ... or ...
$ pip3 install mitmproxy2swagger
# ... or ...
$ git clone [email protected]:alufers/mitmproxy2swagger.git
$ cd mitmproxy2swagger
$ docker build -t mitmproxy2swagger .

Em seguida, clone o repositório e execute mitmproxy2swagger conforme os exemplos abaixo.

Uso

Mitmproxy

Para criar uma especificação inspecionando o tráfego HTTP, você precisará:

  1. Capture o tráfego usando a ferramenta mitmproxy. Eu pessoalmente recomendo usar o mitmweb, que é uma interface web embutida no mitmproxy.

    root@kitploit:~
    $ mitmweb
    Web server listening at http://127.0.0.1:8081/
    Proxy server listening at http://*:9999
    ...
    

    IMPORTANTE

    Para configurar seu cliente para usar o proxy exposto pelo mitmproxy, consulte a documentação do mitmproxy para mais informações.

  2. Salve o tráfego em um arquivo de fluxo.

    No mitmweb você pode fazer isso usando o menu "Arquivo" e selecionando "Salvar":

    Uma captura de tela mostrando a localização da opção "Salvar" no menu "Arquivo"

  3. Execute a primeira passagem do mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <caminho_para_fluxo_mitmproxy> -o <caminho_para_esquema_saida> -p <prefixo_api>
    # ... ou ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <caminho_para_fluxo_mitmproxy> -o <caminho_para_esquema_saida> -p <prefixo_api>
    

    Observe que você pode usar um esquema existente; nesse caso, o esquema existente será estendido com os novos dados. Você também pode executá-lo algumas vezes com diferentes capturas de fluxo; os dados capturados serão mesclados com segurança.

    <prefixo_api> é a url base da API da qual você deseja fazer engenharia reversa. Você precisará obtê-la observando as requisições feitas no mitmproxy.

    Por exemplo, se um aplicativo fez requisições como estas:

    root@kitploit:~
    https://api.example.com/v1/login
    https://api.example.com/v1/users/2
    https://api.example.com/v1/users/2/profile
    

HAR

  1. Capture e exporte o tráfego do DevTools do navegador.

    No DevTools do navegador, vá para a aba "Rede" e clique no botão "Exportar HAR".

    Uma captura de tela mostrando onde o botão exportar har está localizado

  2. Continue da mesma forma que faria com o dump do mitmproxy. O mitmproxy2swagger detectará automaticamente o arquivo HAR e o processará.

Exemplo de saída

Veja os exemplos. Você encontrará um esquema gerado lá e um arquivo html com a documentação gerada (via redoc-cli).

Veja o arquivo html gerado.

Desenvolvimento e contribuição

Este projeto usa:

  • uv para gerenciamento de dependências
  • prek para formatação e linting de código
  • pytest para testes unitários

Para instalar as dependências:

root@kitploit:~
uv sync

Execute linters:

root@kitploit:~
uv run prek run --all-files

Instale hooks do prek:

root@kitploit:~
uv run prek install

Execute testes:

root@kitploit:~
uv run pytest

Execute testes com cobertura:

root@kitploit:~
uv run pytest --cov=mitmproxy2swagger

Licença

MIT

Baixar ferramenta

O prefixo provável é https://api.example.com/v1.

  • Executar a primeira passagem deve ter criado uma seção no arquivo de esquema como esta:

    root@kitploit:~
    x-path-templates:
      # Remove o prefixo ignore: para gerar um endpoint com sua URL
      # Linhas mais próximas do topo têm precedência, a correspondência é gananciosa
      - ignore:/addresses
      - ignore:/basket
      - ignore:/basket/add
      - ignore:/basket/checkouts
      - ignore:/basket/coupons/attach/{id}
      - ignore:/basket/coupons/attach/104754
    

    Você deve editar o arquivo de esquema com um editor de texto e remover o prefixo ignore: dos caminhos que deseja que sejam gerados. Você também pode ajustar os parâmetros que aparecem nos caminhos.

  • Execute a segunda passagem do mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <caminho_para_fluxo_mitmproxy> -o <caminho_para_esquema_saida> -p <prefixo_api> [--examples]
    # ... ou ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <caminho_para_fluxo_mitmproxy> -o <caminho_para_esquema_saida> -p <prefixo_api> [--examples]
    

    Execute o comando uma segunda vez (com o mesmo arquivo de esquema). Ele pegará as linhas editadas e gerará descrições de endpoints.

    Observe que o mitmproxy2swagger não sobrescreverá descrições de endpoints existentes; se você quiser sobrescrevê-las, pode deletá-las antes de executar a segunda passagem.

    Passar --examples adicionará dados de exemplo às requisições e respostas. Tenha cuidado ao usar esta opção, pois pode adicionar dados sensíveis (tokens, senhas, informações pessoais etc.) ao esquema. Passar --headers adicionará dados de cabeçalho às requisições e respostas. Tenha cuidado ao usar esta opção, pois pode adicionar dados sensíveis (tokens, senhas, informações pessoais etc.) ao esquema.