Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mitmproxy2swagger — Rétro-ingénierie automatique des API REST en capturant le trafic | Kitploit
Outils/GitHubGitHub/alufers/mitmproxy2swagger
Rétro-ingénierieCollecte d'InformationsSécurité WebSécurité des API
GitHubalufers/mitmproxy2swagger

mitmproxy2swagger

Rétro-ingénierie automatique des API REST en capturant le trafic

Voir le dépôt
9.6k370il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

mitmproxy2swagger

PyPI version Arch Linux repository

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

Un outil pour convertir automatiquement les captures mitmproxy en spécifications OpenAPI 3.0. Cela signifie que vous pouvez rétro-ingénierer automatiquement des API REST simplement en exécutant les applications et en capturant le trafic.


🆕 NOUVEAU !

Ajout de la prise en charge du traitement des fichiers HAR exportés depuis les DevTools du navigateur. Voir Utilisation - HAR pour plus de détails.


Installation

Vous aurez d'abord besoin de python3 et pip3.

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

Clonez ensuite le dépôt et exécutez mitmproxy2swagger comme dans les exemples ci-dessous.

Utilisation

Mitmproxy

Pour créer une spécification en inspectant le trafic HTTP, vous devez :

  1. Capturez le trafic en utilisant l'outil mitmproxy. Je recommande personnellement d'utiliser mitmweb, une interface web intégrée à mitmproxy.

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

    IMPORTANT

    Pour configurer votre client afin d'utiliser le proxy exposé par mitmproxy, veuillez consulter la documentation mitmproxy pour plus d'informations.

  2. Enregistrez le trafic dans un fichier flow.

    Dans mitmweb, vous pouvez le faire en utilisant le menu "File" et en sélectionnant "Save" :

    A screenshot showing the location of the "Save" option in the "File" menu

  3. Exécutez la première passe de mitmproxy2swagger :

    root@kitploit:~
    $ mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix>
    # ... or ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix>
    

    Veuillez noter que vous pouvez utiliser un schéma existant, auquel cas le schéma existant sera complété avec les nouvelles données. Vous pouvez également l'exécuter plusieurs fois avec différentes captures de flux, les données capturées seront fusionnées en toute sécurité.

    <api_prefix> est l'URL de base de l'API que vous souhaitez rétro-ingénierer. Vous devrez l'obtenir en observant les requêtes effectuées dans mitmproxy.

    Par exemple, si une application a effectué des requêtes comme celles-ci :

    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. Capturez et exportez le trafic depuis les DevTools du navigateur.

    Dans les DevTools du navigateur, allez dans l'onglet Network et cliquez sur le bouton 'Export HAR'.

    A screenshot showing where the export har button is located

  2. Continuez de la même manière qu'avec le dump mitmproxy. mitmproxy2swagger détectera automatiquement le fichier HAR et le traitera.

Exemples de sortie

Voir les exemples. Vous y trouverez un schéma généré et un fichier HTML avec la documentation générée (via redoc-cli).

Voir le fichier HTML généré.

Développement et contribution

Ce projet utilise :

  • uv pour la gestion des dépendances
  • prek pour le formatage et le linting du code
  • pytest pour les tests unitaires

Pour installer les dépendances :

root@kitploit:~
uv sync

Exécuter les linters :

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

Installer les hooks prek :

root@kitploit:~
uv run prek install

Exécuter les tests :

root@kitploit:~
uv run pytest

Exécuter les tests avec couverture :

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

Licence

MIT

Télécharger l’outil

Le préfixe probable est https://api.example.com/v1.

  • L'exécution de la première passe devrait avoir créé une section dans le fichier de schéma comme celle-ci :

    root@kitploit:~
    x-path-templates:
      # Remove the ignore: prefix to generate an endpoint with its URL
      # Lines that are closer to the top take precedence, the matching is greedy
      - ignore:/addresses
      - ignore:/basket
      - ignore:/basket/add
      - ignore:/basket/checkouts
      - ignore:/basket/coupons/attach/{id}
      - ignore:/basket/coupons/attach/104754
    

    Vous devez modifier le fichier de schéma avec un éditeur de texte et supprimer le préfixe ignore: des chemins que vous souhaitez générer. Vous pouvez également ajuster les paramètres apparaissant dans les chemins.

  • Exécutez la deuxième passe de mitmproxy2swagger :

    root@kitploit:~
    $ mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix> [--examples]
    # ... or ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix> [--examples]
    

    Exécutez la commande une deuxième fois (avec le même fichier de schéma). Elle prendra en compte les lignes modifiées et générera les descriptions des points de terminaison.

    Veuillez noter que mitmproxy2swagger n'écrasera pas les descriptions de points de terminaison existantes ; si vous souhaitez les écraser, vous pouvez les supprimer avant d'exécuter la deuxième passe.

    Le passage de --examples ajoutera des exemples de données aux requêtes et réponses. Soyez prudent lorsque vous utilisez cette option, car elle peut ajouter des données sensibles (jetons, mots de passe, informations personnelles, etc.) au schéma. Le passage de --headers ajoutera les données d'en-tête aux requêtes et réponses. Soyez prudent lorsque vous utilisez cette option, car elle peut ajouter des données sensibles (jetons, mots de passe, informations personnelles, etc.) au schéma.