Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mitmproxy2swagger — Ingeniería inversa automágica de APIs REST mediante captura de tráfico | Kitploit
Herramientas/GitHubGitHub/alufers/mitmproxy2swagger
Ingeniería InversaRecopilación de InformaciónSeguridad WebSeguridad de APIs
GitHubalufers/mitmproxy2swagger

mitmproxy2swagger

Ingeniería inversa automágica de APIs REST mediante captura de tráfico

Ver Repositorio
9.6k370hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

mitmproxy2swagger

PyPI version Arch Linux repository

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

Una herramienta para convertir automáticamente capturas de mitmproxy a especificaciones OpenAPI 3.0. Esto significa que puedes realizar ingeniería inversa de APIs REST automáticamente con solo ejecutar las aplicaciones y capturar el tráfico.


🆕 ¡NUEVO!

Se ha añadido soporte para procesar archivos HAR exportados desde las herramientas de desarrollo del navegador. Consulta Uso - HAR para más detalles.


Instalación

Primero necesitarás python3 y pip3.

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

Luego clona el repositorio y ejecuta mitmproxy2swagger según los ejemplos a continuación.

Uso

Mitmproxy

Para crear una especificación inspeccionando el tráfico HTTP necesitarás:

  1. Captura el tráfico utilizando la herramienta mitmproxy. Personalmente recomiendo usar mitmweb, que es una interfaz web integrada en mitmproxy.

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

    IMPORTANTE

    Para configurar tu cliente para que use el proxy expuesto por mitmproxy, consulta la documentación de mitmproxy para más información.

  2. Guarda el tráfico en un archivo de flujo.

    En mitmweb puedes hacerlo usando el menú 'Archivo' y seleccionando 'Guardar':

    Una captura de pantalla que muestra la ubicación de la opción 'Guardar' en el menú 'Archivo'

  3. Ejecuta la primera pasada de mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <ruta_al_flujo_mitmproxy> -o <ruta_al_esquema_de_salida> -p <prefijo_api>
    # ... o ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <ruta_al_flujo_mitmproxy> -o <ruta_al_esquema_de_salida> -p <prefijo_api>
    

    Ten en cuenta que puedes usar un esquema existente, en cuyo caso el esquema existente se ampliará con los nuevos datos. También puedes ejecutarlo varias veces con diferentes capturas de flujo; los datos capturados se fusionarán de forma segura.

    <prefijo_api> es la URL base de la API que deseas aplicar ingeniería inversa. Deberás obtenerla observando las solicitudes realizadas en mitmproxy.

    Por ejemplo, si una aplicación ha realizado solicitudes 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. Captura y exporta el tráfico desde las herramientas de desarrollo del navegador.

    En las herramientas de desarrollo del navegador, ve a la pestaña Red y haz clic en el botón "Exportar HAR".

    Una captura de pantalla que muestra dónde se encuentra el botón de exportación HAR

  2. Continúa de la misma manera que lo harías con el volcado de mitmproxy. mitmproxy2swagger detectará automáticamente el archivo HAR y lo procesará.

Salida de ejemplo

Consulta los ejemplos. Allí encontrarás un esquema generado y un archivo HTML con la documentación generada (mediante redoc-cli).

Consulta el archivo HTML generado.

Desarrollo y contribuciones

Este proyecto utiliza:

  • uv para la gestión de dependencias
  • prek para el formateo y linting del código
  • pytest para las pruebas unitarias

Para instalar las dependencias:

root@kitploit:~
uv sync

Ejecutar linters:

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

Instalar hooks de prek:

root@kitploit:~
uv run prek install

Ejecutar pruebas:

root@kitploit:~
uv run pytest

Ejecutar pruebas con cobertura:

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

Licencia

MIT

Descargar herramienta

El prefijo probablemente sea https://api.example.com/v1.

  • Al ejecutar la primera pasada debería haberse creado una sección en el archivo de esquema como esta:

    root@kitploit:~
    x-path-templates:
      # Elimina el prefijo ignore: para generar un endpoint con su URL
      # Las líneas más cercanas a la parte superior tienen prioridad, la coincidencia es voraz
      - ignore:/addresses
      - ignore:/basket
      - ignore:/basket/add
      - ignore:/basket/checkouts
      - ignore:/basket/coupons/attach/{id}
      - ignore:/basket/coupons/attach/104754
    

    Debes editar el archivo de esquema con un editor de texto y eliminar el prefijo ignore: de las rutas que desees que se generen. También puedes ajustar los parámetros que aparecen en las rutas.

  • Ejecuta la segunda pasada de mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <ruta_al_flujo_mitmproxy> -o <ruta_al_esquema_de_salida> -p <prefijo_api> [--examples]
    # ... o ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <ruta_al_flujo_mitmproxy> -o <ruta_al_esquema_de_salida> -p <prefijo_api> [--examples]
    

    Ejecuta el comando una segunda vez (con el mismo archivo de esquema). Tomará las líneas editadas y generará descripciones de endpoints.

    Ten en cuenta que mitmproxy2swagger no sobrescribirá las descripciones de endpoints existentes; si deseas sobrescribirlas, puedes eliminarlas antes de ejecutar la segunda pasada.

    Pasar --examples añadirá datos de ejemplo a las solicitudes y respuestas. Ten cuidado al usar esta opción, ya que puede añadir datos sensibles (tokens, contraseñas, información personal, etc.) al esquema. Pasar --headers añadirá datos de cabeceras a las solicitudes y respuestas. Ten cuidado al usar esta opción, ya que puede añadir datos sensibles (tokens, contraseñas, información personal, etc.) al esquema.