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

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

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

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

工具目录

分类

查看所有分类
Loading categories
apidetector — 多线程扫描器,用于检测跨Web域名和子域名的暴露Swagger/OpenAPI端点,具备自动XSS检测、PoC生成和误报过滤功能,适用于API安全评估。 | Kitploit
工具/GitHubGitHub/brinhosa/apidetector
侦察漏洞扫描器API安全测试信息收集Web安全
GitHubbrinhosa/apidetector

apidetector

多线程扫描器,用于检测跨Web域名和子域名的暴露Swagger/OpenAPI端点,具备自动XSS检测、PoC生成和误报过滤功能,适用于API安全评估。

查看仓库
3794511年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

APIDetector 网络界面

APIDetector 是一款强大且高效的工具,专为测试各个子域名中暴露的 Swagger 端点而设计,具有独特的智能能力来检测误报。对于从事 API 测试和漏洞扫描的安全专业人员和开发者尤其有用。

已在 BlackHat Arsenal 2024 上展示(链接)

版本历史

版本 3 新增功能(当前版本)

  • 现代化 Web 界面:用户友好的界面,便于进行 API 端点扫描
  • 实时结果:实时更新发现的端点和漏洞
  • 交互式仪表盘:使用 Tailwind CSS 和 Alpine.js 构建的简洁且响应式的用户界面
  • 文件上传支持:通过上传文本文件一次性扫描多个域名/子域名
  • 域名验证:使用正则表达式模式匹配进行输入验证
  • 灵活配置:易于使用的扫描设置表单,改进了默认值
  • 可视化结果:改进的扫描结果和 PoC 展示
  • 截图管理:自动捕获并显示易受攻击端点的截图(每个子域名一张)
  • 针对性 PoC 生成:仅针对 /swagger-ui/index.html 端点生成概念验证
  • 响应式设计:针对从移动端到桌面端的所有屏幕尺寸进行优化
  • 错误处理:增强的错误反馈和日志记录
  • 无障碍改进:更好的键盘导航和屏幕阅读器支持

版本 2 功能

  • 自动 XSS 检测:识别存在漏洞的 Swagger 版本
  • 可视化 PoC 生成:为漏洞创建概念验证
  • 增强的错误处理:更好的反馈和日志记录
  • 性能优化:优化的扫描算法

核心功能

  • 灵活输入:接受单个域名或子域名列表
  • 多协议支持:通过 HTTP 和 HTTPS 测试端点
  • 并发性:多线程扫描以获得更快结果
  • 智能检测:高级误报检测能力
  • 可自定义设置:配置线程数、用户代理等

系统要求

APIDetector v3 需要 Python 3.x 及以下包:

root@kitploit:~
flask         # Web 框架
requests      # HTTP 客户端
playwright    # 浏览器自动化(用于截图)
nest_asyncio  # 异步 IO 支持

所有依赖项均列在 requirements.txt 中,并可在设置过程中自动安装。

首次设置

安装所需包后,您需要安装 Playwright 浏览器:

root@kitploit:~
python -m playwright install

这对于截图功能的正常运行是必需的。

快速开始

前提条件

  • Python 3.x(下载)
  • pip(Python 包安装程序)
  • Git(用于克隆仓库)

安装

  1. 克隆仓库:
root@kitploit:~
git clone https://github.com/brinhosa/apidetector.git
cd apidetector
  1. 创建并激活虚拟环境:
root@kitploit:~
# 在 macOS/Linux 上:
python3 -m venv venv
source venv/bin/activate

# 在 Windows 上:
python -m venv venv
venv\Scripts\activate
  1. 安装依赖项:
root@kitploit:~
pip install -r requirements.txt
  1. 安装浏览器自动化:
root@kitploit:~
playwright install

Web 界面(版本 3)

  1. 启动 Web 服务器:
root@kitploit:~
python app.py
  1. 默认情况下,服务器运行在 http://127.0.0.1:5000。您可以指定不同的端口或主机:
root@kitploit:~
python app.py --port 8080 --host 0.0.0.0
  1. 打开浏览器并导航到终端中显示的 URL。

  2. 使用 Web 界面:

    • 输入单个域名或上传包含多个域名的文件(每行一个)
    • 配置扫描选项(线程数、混合模式、用户代理)
    • 点击“开始扫描”开始
    • 实时查看出现的结果
    • 自动显示易受攻击端点的截图
  3. 截图将保存在 screenshots 目录中,以备将来参考。

使用方法

APIDetector v3 提供两种交互方式:现代 Web 界面(v3 新增)和传统命令行界面(原版)。

Web 界面

  1. 启动 Web 服务器:
root@kitploit:~
python app.py [选项]

可用选项:

示例:

root@kitploit:~
# 使用默认设置运行(localhost:5000)
python app.py

# 使用自定义端口运行
python app.py -p 8080

# 允许外部访问
python app.py --host 0.0.0.0

# 在调试模式下运行
python app.py -d
  1. 访问 Web 界面:

    • 打开浏览器并导航到显示的 URL
    • 输入目标域名或上传包含多个域名的文件(每行一个)
    • 配置扫描选项:
      • HTTP/HTTPS 模式
      • 线程数(默认:10)
      • 自定义用户代理
    • 点击“开始扫描”
  2. 查看结果:

    • 实时显示发现的 API 端点,并带有进度跟踪
    • 自动测试易受攻击的端点
    • 为确认的漏洞生成 PoC 截图
    • 扫描进行中即可查看结果

命令行界面

通过命令行运行 APIDetector。以下是一些用法示例:

  • 常见用法:使用 30 个线程扫描子域名列表,使用 Chrome 用户代理,并将结果保存到文件:

    root@kitploit:~
    python apidetector.py -i list_of_company_subdomains.txt -o results_file.txt -t 30 -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
    
  • 扫描单个域名:

    root@kitploit:~
    python apidetector.py -d example.com
    
  • 从文件扫描多个域名:

    root@kitploit:~
    python apidetector.py -i input_file.txt
    
  • 指定输出文件:

    root@kitploit:~
    python apidetector.py -i input_file.txt -o output_file.txt
    
  • 使用特定数量的线程:

    root@kitploit:~
    python apidetector.py -i input_file.txt -t 20
    
  • 同时使用 HTTP 和 HTTPS 协议扫描:

    root@kitploit:~
    python apidetector.py -m -d example.com
    
  • 静默模式运行脚本(抑制详细输出):

    root@kitploit:~
    python apidetector.py -q -d example.com
    
  • 使用自定义用户代理运行脚本:

    root@kitploit:~
    python apidetector.py -d example.com -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
    

如果您使用的是 APIDetector v2,请将命令替换为 apidetectorv2.py。

选项

  • -d, --domain:要测试的单个域名。
  • -i, --input:包含要测试的子域名的输入文件。
  • -o, --output:用于写入有效 URL 的输出文件。
  • -t, --threads:用于扫描的线程数(默认值为 10)。
  • -m, --mixed-mode:同时测试 HTTP 和 HTTPS 协议。
  • -q, --quiet:禁用详细输出(默认模式为详细)。
  • -ua, --user-agent:自定义请求的用户代理字符串。

APIDetector 发现的每个端点的风险详情

暴露 Swagger 或 OpenAPI 文档端点可能带来各种风险,主要涉及信息泄露。以下是基于潜在风险级别按降序排列的列表,APIDetector 扫描将相似端点分组在一起:

1. 高风险端点(直接 API 文档):

  • 端点:
    • '/swagger-ui.html', '/swagger-ui/', '/swagger-ui/index.html', '/api/swagger-ui.html', '/documentation/swagger-ui.html', '/swagger/index.html', '/api/docs', '/docs', '/api/swagger-ui', '/documentation/swagger-ui'
  • 风险:
    • 这些端点通常提供 Swagger UI 界面,该界面提供了所有 API 端点的完整概览,包括请求格式、查询参数,有时还包括示例请求和响应。
    • 风险级别:高。暴露这些端点会为潜在攻击者提供您 API 结构的详细见解以及可能的攻击向量。

2. 中高风险端点(API 架构/规范):

  • 端点:
    • '/openapi.json', '/swagger.json', '/api/swagger.json', '/swagger.yaml', '/swagger.yml', '/api/swagger.yaml', '/api/swagger.yml', '/api.json', '/api.yaml', '/api.yml', '/documentation/swagger.json', '/documentation/swagger.yaml', '/documentation/swagger.yml'
  • 风险:
    • 这些端点提供原始的 Swagger/OpenAPI 规范文件。它们包含关于 API 端点的详细信息,包括路径、参数,有时还包括认证方法。

3. 中等风险端点(API 文档版本):

  • 端点:
    • '/v2/api-docs', '/v3/api-docs', '/api/v2/swagger.json', '/api/v3/swagger.json', '/api/v1/documentation', '/api/v2/documentation', '/api/v3/documentation', '/api/v1/api-docs', '/api/v2/api-docs', '/api/v3/api-docs', '/swagger/v2/api-docs', '/swagger/v3/api-docs', '/swagger-ui.html/v2/api-docs', '/swagger-ui.html/v3/api-docs', ,

4. 较低风险端点(配置和资源):

  • 端点:
    • '/swagger-resources', '/swagger-resources/configuration/ui', '/swagger-resources/configuration/security', '/api/swagger-resources', '/api.html'
  • 风险:
    • 这些端点通常提供辅助信息、配置细节或与 API 文档设置相关的资源。
    • 风险级别:较低。它们可能不会直接泄露 API 端点细节,但可以揭示 API 文档的配置和设置情况。

总结:

  • 最高风险:直接暴露交互式 API 文档界面。
  • 中高风险:暴露原始 API 架构/规范文件。
  • 中等风险:特定版本的 API 文档。
  • 较低风险:API 文档的配置和资源文件。

建议:

  • 访问控制:确保这些端点不公开可用,或至少通过认证机制进行保护。
  • 按环境暴露:考虑仅在开发或暂存环境中暴露详细的 API 文档,而不是在生产环境。
  • 监控和日志记录:监控对这些端点的访问,并设置针对异常访问模式的警报。

贡献

欢迎为 APIDetector 做出贡献!请随时 fork 仓库、进行更改并提交 pull request。 特别感谢协助测试和提出功能建议的贡献成员:

  • Filipi Pires (大使) - https://www.linkedin.com/in/filipipires/
  • Denis Lourenço - https://www.linkedin.com/in/🚲denis-lourenço-18b07a128/
  • Bruno Francisco Cardoso - https://www.linkedin.com/in/bruno-francisco-cardoso-27445953/

法律声明

APIDetector 工具严格仅用于测试和教育目的。APIDetector 的开发者不承担任何责任,并否认因使用本工具而产生的任何误用、意外后果或损害的所有责任。严禁任何未经授权、非法或以其他方式有害地使用 APIDetector。最终用户完全有责任确保遵守所有相关的当地、州、联邦和国际法律。使用本工具即表示用户确认拥有必要的授权来测试其打算扫描的网络或系统,并同意赔偿开发者因使用本工具而产生的所有索赔。 最终用户完全有责任确保其使用本工具不违反管辖所测试网络或系统的任何法律限制或服务条款。

免责声明:APIDetector 工具使用 APIDetector 工具专为合法测试和教育目的而设计。其按“现状”提供,不附带任何形式的明示或暗示的保证。APIDetector 的开发者及分发者明确否认因使用本工具而产生的误用、意外后果或损害的任何责任。 **重要法律声明:**严禁未经授权、非法或不道德地使用 APIDetector。用户全权负责遵守所有适用的当地、州、联邦和国际法律,以及与其所涉及的网络或系统相关的任何服务条款。使用 APIDetector 即表示用户确认其拥有必要的授权来测试目标网络或系统。 **风险承担与赔偿:**通过下载、安装或使用 APIDetector,用户承担因使用而产生的所有法律责任。APIDetector 的开发者及分发者不对因使用本工具而产生的任何法律后果、损害或第三方索赔承担责任。用户同意赔偿并使开发者和分发者免受因其行为而引起的任何索赔、法律费用或责任。

许可证

本项目采用 MIT 许可证 授权。

致谢

  • 感谢所有在测试、建议和改进方面做出贡献的贡献者。
  • 作者:Rafael B. Brinhosa - https://www.linkedin.com/in/brinhosa/
下载工具
选项描述默认值
-p, --port端口号5000
--host主机地址127.0.0.1
-d, --debug启用调试模式False
  • 风险级别:中高。虽然它们需要比 UI 界面更多的解读,但仍然会泄露关于 API 的大量信息。
  • '/api/swagger/v2/api-docs'
    '/api/swagger/v3/api-docs'
  • 风险:
    • 这些端点通常指向特定版本的文档或 API 描述。它们会泄露关于 API 结构和能力的信息,这可能帮助攻击者理解 API 的功能和潜在弱点。
    • 风险级别:中等。这些可能不如完整的文档或架构文件详细,但仍然为攻击者提供有用的信息。