Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
mitmproxy2swagger — 通过捕获流量自动反向工程REST API | Kitploit
工具/GitHubGitHub/alufers/mitmproxy2swagger
逆向工程信息收集Web安全API 安全
GitHubalufers/mitmproxy2swagger

mitmproxy2swagger

通过捕获流量自动反向工程REST API

查看仓库
9.6k3701个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

mitmproxy2swagger

PyPI version Arch Linux repository

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

一个用于自动将 mitmproxy 捕获转换为 OpenAPI 3.0 规范的工具。这意味着您只需运行应用程序并捕获流量,即可自动逆向工程 REST API。


🆕 新功能!

新增对从浏览器开发者工具导出的 HAR 文件的支持。有关更多详细信息,请参阅 用法 - HAR。


安装

首先你需要安装 python3 和 pip3。

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

然后克隆仓库并根据下面的示例运行 mitmproxy2swagger。

用法

Mitmproxy

要通过检查 HTTP 流量来创建规范,您需要:

  1. 使用 mitmproxy 工具捕获流量。我个人推荐使用 mitmweb,它是 mitmproxy 内置的 Web 界面。

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

    重要提示:

    要配置客户端使用 mitmproxy 暴露的代理,请查阅 mitmproxy 文档 获取更多信息。

  2. 将流量保存为流文件。

    在 mitmweb 中,您可以通过使用“文件”菜单并选择“保存”来执行此操作:

    显示“文件”菜单中“保存”选项位置的截图

  3. 运行 mitmproxy2swagger 的第一遍:

    root@kitploit:~
    $ mitmproxy2swagger -i <mitmproxy_flow路径> -o <输出模式文件路径> -p <api前缀>
    # ... 或 ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <mitmproxy_flow路径> -o <输出模式文件路径> -p <api前缀>
    

    请注意,您可以使用现有模式,在这种情况下,现有模式将用新数据扩展。您还可以多次运行它,使用不同的流捕获,捕获的数据将被安全合并。

    <api前缀> 是您想要逆向工程的 API 的基础 URL。您需要通过观察 mitmproxy 中的请求来获取它。

    例如,如果应用程序发出了如下请求:

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

    可能的前缀是 https://api.example.com/v1。

  4. 运行第一遍后,模式文件中应该会创建一个如下部分:

    root@kitploit:~
    x-path-templates:
      # 移除 ignore: 前缀以生成包含其URL的端点
      # 靠前的行优先级更高,匹配是贪婪的
      - ignore:/addresses
      - ignore:/basket
      - ignore:/basket/add
      - ignore:/basket/checkouts
      - ignore:/basket/coupons/attach/{id}
      - ignore:/basket/coupons/attach/104754
    

HAR

  1. 从浏览器开发者工具捕获并导出流量。

    在浏览器开发者工具中,转到“网络”选项卡,然后单击“导出 HAR”按钮。

    显示导出 HAR 按钮位置的截图

  2. 按照与 mitmproxy 转储相同的方式继续操作。mitmproxy2swagger 会自动检测 HAR 文件并进行处理。

示例输出

参见 示例。您会在那里找到一个生成的模式文件和一个包含生成文档的 HTML 文件(通过 redoc-cli 生成)。

查看 生成的 HTML 文件。

开发与贡献

此项目使用:

  • uv 用于依赖管理
  • prek 用于代码格式化和 lint
  • pytest 用于单元测试

安装依赖:

root@kitploit:~
uv sync

运行 linter:

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

安装 prek 钩子:

root@kitploit:~
uv run prek install

运行测试:

root@kitploit:~
uv run pytest

带有覆盖率运行测试:

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

许可证

MIT

下载工具

您应该使用文本编辑器编辑模式文件,并移除您希望生成的路径中的 ignore: 前缀。您还可以调整路径中出现的参数。

  • 运行 mitmproxy2swagger 的第二遍:

    root@kitploit:~
    $ mitmproxy2swagger -i <mitmproxy_flow路径> -o <输出模式文件路径> -p <api前缀> [--examples]
    # ... 或 ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <mitmproxy_flow路径> -o <输出模式文件路径> -p <api前缀> [--examples]
    

    再次运行命令(使用相同的模式文件)。它将拾取编辑过的行并生成端点描述。

    请注意,mitmproxy2swagger 不会覆盖现有的端点描述。如果您想覆盖它们,可以在运行第二遍之前删除它们。

    传递 --examples 将为请求和响应添加示例数据。使用此选项时请小心,因为它可能会向模式中添加敏感数据(令牌、密码、个人信息等)。 传递 --headers 将为请求和响应添加标头数据。使用此选项时请小心,因为它可能会向模式中添加敏感数据(令牌、密码、个人信息等)。