Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/alufers/mitmproxy2swagger
Reverse EngineeringRaccolta InformazioniSicurezza WebSicurezza delle API
GitHubalufers/mitmproxy2swagger

mitmproxy2swagger

Reverse-engineer automaticamente API REST tramite la cattura del traffico

Vedi Repository
9.6k3701 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

mitmproxy2swagger

PyPI version Arch Linux repository

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

Uno strumento per convertire automaticamente le catture di mitmproxy in specifiche OpenAPI 3.0. Ciò significa che puoi eseguire il reverse engineering automatico delle API REST semplicemente eseguendo le app e catturando il traffico.


🆕 NUOVO!

Aggiunto supporto per l'elaborazione di HAR esportati dagli strumenti di sviluppo del browser. Vedi Utilizzo - HAR per maggiori dettagli.


Installazione

Per prima cosa avrai bisogno di python3 e pip3.

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

Poi clona il repo ed esegui mitmproxy2swagger come negli esempi seguenti.

Utilizzo

Mitmproxy

Per creare una specifica ispezionando il traffico HTTP dovrai:

  1. Catturare il traffico usando lo strumento mitmproxy. Personalmente consiglio di usare mitmweb, un'interfaccia web integrata in mitmproxy.

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

    IMPORTANTE

    Per configurare il tuo client affinché usi il proxy esposto da mitmproxy, consulta la documentazione di mitmproxy per maggiori informazioni.

  2. Salvare il traffico in un file di flusso.

    In mitmweb puoi farlo usando il menu "File" e selezionando "Salva":

    Una schermata che mostra la posizione dell'opzione "Salva" nel menu "File"

  3. Eseguire il primo passaggio di mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <percorso_del_flusso_mitmproxy> -o <percorso_dello_schema_output> -p <prefisso_api>
    # ... oppure ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <percorso_del_flusso_mitmproxy> -o <percorso_dello_schema_output> -p <prefisso_api>
    

    Nota che puoi usare uno schema esistente, nel qual caso lo schema esistente verrà esteso con i nuovi dati. Puoi anche eseguirlo più volte con diverse catture di flusso; i dati catturati verranno uniti in modo sicuro.

    <prefisso_api> è l'URL di base dell'API di cui vuoi fare reverse engineering. Dovrai ottenerlo osservando le richieste effettuate in mitmproxy.

    Ad esempio, se un'app ha effettuato richieste come queste:

    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. Catturare ed esportare il traffico dagli strumenti di sviluppo del browser.

    Negli strumenti di sviluppo del browser, vai alla scheda "Rete" e clicca sul pulsante "Esporta HAR".

    Una schermata che mostra dove si trova il pulsante di esportazione HAR

  2. Continua nello stesso modo in cui faresti con il dump di mitmproxy. mitmproxy2swagger rileverà automaticamente il file HAR e lo elaborerà.

Output di esempio

Vedi gli esempi. Troverai uno schema generato e un file html con la documentazione generata (tramite redoc-cli).

Vedi il file html generato.

Sviluppo e contributi

Questo progetto utilizza:

  • uv per la gestione delle dipendenze
  • prek per formattazione e linting del codice
  • pytest per i test unitari

Per installare le dipendenze:

root@kitploit:~
uv sync

Esegui i linter:

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

Installa gli hook di prek:

root@kitploit:~
uv run prek install

Esegui i test:

root@kitploit:~
uv run pytest

Esegui i test con copertura:

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

Licenza

MIT

Scarica lo strumento

Il prefisso probabile è https://api.example.com/v1.

  • L'esecuzione del primo passaggio dovrebbe aver creato una sezione nel file dello schema come questa:

    root@kitploit:~
    x-path-templates:
      # Rimuovi il prefisso ignore: per generare un endpoint con il suo URL
      # Le righe più in alto hanno la precedenza, il matching è greedy
      - ignore:/addresses
      - ignore:/basket
      - ignore:/basket/add
      - ignore:/basket/checkouts
      - ignore:/basket/coupons/attach/{id}
      - ignore:/basket/coupons/attach/104754
    

    Dovresti modificare il file dello schema con un editor di testo e rimuovere il prefisso ignore: dai percorsi che desideri vengano generati. Puoi anche regolare i parametri che appaiono nei percorsi.

  • Eseguire il secondo passaggio di mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <percorso_del_flusso_mitmproxy> -o <percorso_dello_schema_output> -p <prefisso_api> [--examples]
    # ... oppure ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <percorso_del_flusso_mitmproxy> -o <percorso_dello_schema_output> -p <prefisso_api> [--examples]
    

    Esegui il comando una seconda volta (con lo stesso file dello schema). Prenderà le righe modificate e genererà le descrizioni degli endpoint.

    Nota che mitmproxy2swagger non sovrascriverà le descrizioni degli endpoint esistenti; se vuoi sovrascriverle, puoi eliminarle prima di eseguire il secondo passaggio.

    L'uso di --examples aggiungerà dati di esempio alle richieste e alle risposte. Presta cautela nell'usare questa opzione, poiché potrebbe aggiungere dati sensibili (token, password, informazioni personali, ecc.) allo schema. L'uso di --headers aggiungerà i dati delle intestazioni alle richieste e alle risposte. Presta cautela nell'usare questa opzione, poiché potrebbe aggiungere dati sensibili (token, password, informazioni personali, ecc.) allo schema.