bluechips-zhao/APISentinel_Bluechips

GitHub: bluechips-zhao/APISentinel_Bluechips

APISentinel_Bluechips 是一款面向 API 的自动化安全检测工具,解决渗透测试中接口漏洞发现与验证的效率与覆盖问题。

Stars: 1 | Forks: 0

# APISentinel_Bluechips ## 目录 - [简介](#简介) - [功能特性](#功能特性) - [更新日志](#更新日志) - [安装与配置](#安装与配置) - [快速入门](#快速入门) - [主界面功能](#主界面功能) - [设置面板](#设置面板) - [高级功能](#高级功能) - [常见问题](#常见问题) - [项目结构](#项目结构) ## 简介 APISentinel_Bluechips 是一款专为渗透测试人员打造的 API 接口自动化安全检测工具。它能够自动解析 Swagger/OpenAPI 和 ASP.NET Help Page 文档,智能填充参数,批量测试接口,并提供强大的敏感信息检测和漏洞扫描功能。 ## 功能特性 | 功能 | 描述 | |------|------| | 📄 **多文档格式支持** | Swagger 2.0/3.0、ASP.NET Help Page | | 🔍 **智能参数填充** | 自动识别参数类型并生成测试数据 | | 🎯 **多格式测试** | URL 参数、JSON Body、Form Body 三种格式 | | 🔐 **敏感信息检测** | 100+ 内置规则,覆盖云服务密钥、Token、个人信息等 | | 🛡️ **IDOR 检测** | 自动检测不安全的直接对象引用漏洞 | | 🔑 **认证绕过测试** | Token 绕过、HTTP 方法绕过、请求头绕过 | | 📡 **JWT 安全检测** | 弱密钥检测、alg:none 漏洞、算法混淆攻击 | | 🔎 **API 自动发现** | 网页爬取、路径探测、JS 分析、Sitemap 解析 | | 🚀 **批量测试** | 并发执行,提高效率 | | 📊 **结果去重** | 智能过滤重复响应 | | 📈 **多格式导出** | Excel、CSV、JSON、HTML | ## 更新日志 ### V1.1.0 (2026-04-16) #### 🆕 新功能 - **API 自动发现**:从目标网站自动发现 API 接口,支持网页爬取、路径探测、JS 分析、Sitemap 解析、响应头分析 5 种策略 #### 🔧 重构优化 - **认证绕过检测器重构**:提取模板方法消除重复代码,测试方法代码量减少约 48%,新增测试类型开发成本降低约 70% ### V1.0.1 (2026-04-13) #### 🔴 关键修复 - **测试执行异步化**:测试流程移至 QThread,不再阻塞 UI - **安全检测器集成**:IDOR、认证绕过、上传漏洞检测器已接入测试流程 - **JWT 检测结果保存**:JWT 分析结果正确存入 TestResult - **TestResult 模型完善**:新增 jwt_info、idor_info、auth_bypass_info、upload_info 字段 #### 🟡 重要改进 - **停止测试功能**:支持中断正在运行的测试 - **安全检测器 UI 开关**:设置面板新增 5 个检测器开关,无需改代码即可启用 - **Fuzzer 工具栏入口**:新增 Fuzzer 按钮,支持 Payload 类别选择 - **多格式导出**:支持 Excel、CSV、JSON、HTML 四种格式 - **状态码过滤**:可按状态码筛选测试结果 - **设置实时生效**:修改检测器设置后自动重建 TestExecutor - **HTTP 重试修复**:移除 urllib3 层状态码重试,避免重试次数超标 #### 🎨 UI 改进 - **深海暗夜配色**:深蓝-青色配色方案替换紫色主题 - **丝滑动画效果**:窗口入场、按钮悬停、分组框阴影动画 - **免责声明标签页**:设置面板新增免责声明页面 - **拦截方法横向排列**:安全设置拦截方法改为横向复选框 ## 安装与配置 ### 系统要求 - **操作系统**:Windows 10/11 - **Python 版本**:Python 3.8 或更高版本 - **内存**:至少 4GB RAM ### 安装步骤 # 1. 进入项目目录 cd APISentinel_Bluechips # 2. 安装依赖 pip install -r requirements.txt # 3. 运行程序 python src/main.py ## 快速入门 ### 第一步:启动程序 python src/main.py ### 第二步:导入 API 文档 1. 选择文档类型: - **Swagger/OpenAPI**:输入 JSON URL 或选择本地文件 - **ASP.NET Help Page**:输入帮助页面 URL - **🔍 API 自动发现**:输入目标网站 URL,自动发现 API 接口 2. 示例 URL: Swagger: https://petstore.swagger.io/v2/swagger.json ASP.NET: http://example.com/Help 自动发现: https://example.com 3. 点击"导入"按钮 ### 第三步:选择接口 在接口列表中勾选要测试的接口 ### 第四步:开始测试 点击工具栏的"开始测试"按钮 ### 第五步:查看结果 - 在测试结果区域查看详细信息 - 双击结果查看完整请求和响应 - 点击"导出结果"保存到 Excel ## 主界面功能 ### 工具栏按钮 | 按钮 | 颜色 | 功能 | |------|------|------| | ▶ 开始测试 | 🟢 绿色 | 开始执行选中的接口测试 | | ⏹ 停止测试 | 🔴 红色 | 停止正在进行的测试 | | 🗑 清空结果 | 🟠 橙色 | 清空测试结果列表 | | 📊 导出结果 | 🔵 蓝色 | 导出结果到文件(支持 Excel/CSV/JSON/HTML) | | 🎯 Fuzzer | 🟡 橙色 | 参数变异测试 | | ⚙ 设置 | 🟣 紫色 | 打开设置对话框 | ### 接口列表 | 列名 | 说明 | |------|------| | 选择 | 勾选要测试的接口 | | 方法 | HTTP 方法(GET、POST、PUT、DELETE 等) | | URL | 接口的完整 URL | | 描述 | 接口的功能描述 | | 标签 | 接口的分类标签 | | 状态 | 接口状态(就绪、测试中、已完成) | ### 结果列表 | 列名 | 说明 | |------|------| | ID | 结果序号 | | 方法 | HTTP 方法 | | URL | 请求的 URL | | 状态码 | HTTP 响应状态码 | | 长度 | 响应体长度(字节) | | 时间 | 响应时间(秒) | | 敏感信息 | 检测到的敏感信息数量 | | 操作 | 查看详情按钮 | ## 设置面板 ### 1. 敏感规则标签页 管理敏感信息检测规则,支持添加、编辑、删除、导入、导出规则。 **内置规则分类:** - **云服务密钥**:AWS、阿里云、腾讯云、Google Cloud、Azure - **Token**:JWT、GitHub、Slack、Stripe、PayPal - **数据库连接串**:MySQL、PostgreSQL、MongoDB、Redis - **个人隐私信息**:手机号、身份证号、邮箱、银行卡号 ### 2. 请求头标签页 配置自定义请求头,用于认证、绕过限制等场景。 **快捷添加:** - Cookie - Authorization - User-Agent ### 3. 变异测试标签页 配置 Fuzzing Payload,用于参数变异测试。 **Payload 分类:** - SQL 注入 - XSS 攻击 - 路径遍历 - 命令注入 - 自定义 ### 4. 安全设置标签页 配置安全模式和检测器开关。 **安全模式功能:** - 启用/禁用安全模式(默认开启) - 拦截危险 HTTP 方法(DELETE、PUT、PATCH) - 配置危险关键词过滤 - 设置 URL 黑名单 **安全检测器开关:** - 🔐 敏感信息检测(默认启用) - 🎫 JWT 安全检测(默认启用) - 🎭 IDOR 漏洞检测(可选) - 🔓 认证绕过检测(可选) - 📤 上传漏洞检测(可选) ### 5. 免责声明标签页 查看完整的免责声明和使用限制,需勾选同意后方可使用。 ## 高级功能 ### API 自动发现 从目标网站自动发现 API 接口,无需手动导入文档: 1. 在文档类型中选择"🔍 API 自动发现" 2. 输入目标网站 URL(如 `https://example.com`) 3. 点击导入,工具将自动执行以下发现策略: - **网页爬取**:爬取页面中的链接、表单、脚本等标签 - **路径探测**:对 50+ 常见 API 路径发送请求(/api、/swagger、/graphql 等) - **JavaScript 分析**:提取 JS 文件中的 fetch/axios 调用和 API 路径 - **Sitemap/Robots**:解析 sitemap.xml 和 robots.txt - **响应头分析**:从 Link、X-API-Version 等响应头提取信息 4. 发现的接口自动转换为可测试的 APIEndpoint 对象 ### IDOR 自动检测 自动检测不安全的直接对象引用漏洞: 1. 识别 ID 类参数(user_id、order_id、account_id 等) 2. 生成 ID 变异值(+1、-1、+10、-10、0、-1) 3. 发送修改后的请求 4. 对比响应差异判断漏洞 ### 认证绕过测试 测试多种认证绕过方式: - **Token 绕过**:空 Token、过期 Token、无效 Token - **HTTP 方法绕过**:GET↔POST 转换、X-HTTP-Method-Override - **请求头绕过**:X-Forwarded-For、X-Original-URL、X-Real-IP 等 ### JWT 安全检测 全面的 JWT 安全检测: - JWT Token 识别和解析 - 弱密钥检测(内置 60+ 常见弱密钥) - alg:none 漏洞测试 - 算法混淆攻击(RS256→HS256) - Payload 敏感信息检测 ### 上传漏洞检测 自动检测文件上传漏洞: - 自动识别上传接口 - 测试多种上传场景(XSS、双扩展名、空字节注入等) - 检测危险文件上传 - 验证上传文件可访问性 ### 请求链执行 支持复杂的 API 测试场景: - 按顺序执行多个 API 请求 - 步骤间变量传递和提取 - 支持从 Header、Body、Cookie 提取数据 - 支持正则表达式和 JSONPath 提取 ### 结果导出 支持格式:Excel (.xlsx)、CSV (.csv)、JSON (.json)、HTML (.html) ## 常见问题 ### Q1: 如何配置代理? 在测试结果面板的代理输入框中输入: http://127.0.0.1:8080 ### Q2: 如何测试需要认证的接口? 在设置面板的"请求头"标签页中添加: Authorization: Bearer your_token_here ### Q3: 如何避免误删生产数据? 启用安全模式: 1. 打开设置面板 2. 切换到"安全设置"标签页 3. 勾选"启用安全模式(默认开启)" 4. 选择要拦截的 HTTP 方法(DELETE、PUT、PATCH) ### Q4: 导入 Swagger 文档失败? 检查: 1. URL 是否可访问 2. 是否为有效的 JSON 格式 3. 是否为 Swagger 2.0 或 OpenAPI 3.0 格式 ### Q5: 如何查看敏感信息检测结果? 在测试结果列表中: 1. 查看"敏感信息"列的数量 2. 双击结果行查看详细信息 3. 在详情对话框中查看检测到的敏感信息列表 ### Q6: 如何使用 JWT 检测功能? JWT 检测功能已自动集成: - 在测试过程中自动识别 JWT Token - 自动解析 JWT 的 Header、Payload、Signature - 自动检测弱密钥和常见漏洞 - 在测试结果中查看 JWT 分析报告 ### Q7: 如何启用高级检测功能? 在设置面板中启用: 1. 打开设置面板(点击工具栏 ⚙ 按钮) 2. 切换到"安全设置"标签页 3. 在"安全检测器"区域勾选需要的检测器 4. 点击"保存",设置立即生效 ## 项目结构 APISentinel_Bluechips/ ├── src/ │ ├── main.py # 程序入口 │ ├── core/ │ │ ├── models.py # 数据模型 │ │ └── http_client.py # HTTP 客户端 │ ├── parsers/ │ │ ├── swagger_parser.py # Swagger 解析器 │ │ ├── aspnet_parser.py # ASP.NET 解析器 │ │ └── api_discoverer.py # API 自动发现 │ ├── engines/ │ │ ├── param_filler.py # 参数填充 │ │ ├── request_builder.py # 请求构建 │ │ ├── test_executor.py # 测试执行 │ │ ├── sensitive_detector.py # 敏感信息检测 │ │ ├── sensitive_rules.py # 敏感规则库 │ │ ├── idor_detector.py # IDOR 检测 │ │ ├── auth_bypass.py # 认证绕过 │ │ ├── jwt_detector.py # JWT 检测 │ │ ├── upload_detector.py # 上传漏洞检测 │ │ ├── request_chain.py # 请求链执行器 │ │ ├── fuzzer.py # 参数变异测试 │ │ ├── deduplicator.py # 结果去重 │ │ ├── exporter.py # 结果导出 │ │ └── safe_mode.py # 安全模式 │ └── ui/ │ ├── main_window.py # 主窗口 │ └── settings_dialog.py # 设置对话框 ├── config/ │ └── settings.json # 配置文件 ├── resources/ │ └── icon.ico # 应用图标 ├── requirements.txt # 依赖列表 └── README.md # 说明文档 ## 快捷键 | 快捷键 | 功能 | |--------|------| | Ctrl+Enter | 开始测试 | | Ctrl+Break | 停止测试 | | Ctrl+Delete | 清空结果 | | Ctrl+S | 导出结果 | | Ctrl+, | 打开设置 | ## ⚠️ 免责声明 本工具仅供 **授权安全测试** 与 **学术研究** 使用。 在使用本工具进行检测时,您必须确保已获得目标系统的合法授权。 **严禁使用本工具进行任何非法入侵、攻击或破坏活动。** 作者不对任何因使用本工具而导致的法律后果或连带责任承担责任。 ## 许可证 MIT License **Made with ❤️ by bluechips**
标签:API安全, API自动发现, ASP.NET, Hex文件处理, IDOR, JSON输出, JWT分析, LLM应用, OpenAPI, SEO, Swagger, 关键词, 多格式导出, 安全测试, 对抗攻击, 工具, 并发测试, 批量测试, 攻击性安全, 敏感信息检测, 结果去重, 认证绕过, 跨平台工具, 逆向工具