pasmud/authzmapper

GitHub: pasmud/authzmapper

一款防御性 API 授权测试仪表盘,通过多角色矩阵自动化检测 API 中的 BOLA 和 BFLA 越权漏洞并提供修复指导。

Stars: 0 | Forks: 0

# AuthzMapper **API 授权测试仪表盘** — 识别您拥有或被授权测试的 API 中的 Broken Object Level Authorization (BOLA) 和 Broken Function Level Authorization (BFLA) 漏洞。 ## 安全边界 AuthzMapper 是一款**防御性网络安全工具**。它: - 以**本地优先**方式运行,内置演示 API 以供安全测试 - 在测试非 localhost URL 之前需要明确的授权确认 - **不**执行漏洞利用链、暴力破解、凭据窃取或任何攻击性/未经授权的活动 - 在日志、UI 和导出数据中脱敏处理敏感 token 和 header ## 功能 - **OpenAPI Spec 导入** — 上传 JSON/YAML 规范;解析 endpoint、路径参数、认证方案和对象 ID 参数 - **基于角色的测试矩阵** — 定义角色(anonymous、user_a、user_b、admin)及其对应的 token - **自动化扫描** — 跨所有 endpoint × 角色 × 对象所有者生成并执行测试矩阵 - **BOLA/BFLA 检测** — 识别跨用户对象访问和权限提升问题 - **内置易受攻击的演示 API** — 包含 BOLA 和 BFLA 漏洞的本地 API,用于安全学习 - **证据查看器** — 检查单个请求/响应对,敏感数据已脱敏 - **修复指南** — 针对每项发现提供可操作的修复步骤 - **报告导出** — 以 Markdown 或 JSON 格式下载结果 - **回归测试** — 切换修复模式并重新扫描以验证解决方案 ## 前置条件 - Node.js 20+ - npm ## 本地运行 ``` # 安装依赖 npm install # 设置数据库 npm run db:seed # 启动开发服务器 npm run dev:all # 或分别运行: # Terminal 1: npm run server (Backend on :3001) # Terminal 2: npm run dev (Frontend on :5173) ``` 然后打开 http://localhost:5173 ## Docker 运行 ``` docker compose up --build ``` 打开 http://localhost:3001 ## 快速开始 1. 在 http://localhost:5173 打开仪表盘 2. 转到 **Import Spec** 并点击 **Import Demo API Spec** 3. 转到 **Roles** 并配置 token(对于演示 API 是可选的) 4. 转到 **Scans**,选择导入的规范,然后点击 **Run Scan** 5. 在结果页面上查看发现 6. 在 Evidence 页面上切换修复模式并重新扫描以进行回归测试 ## 测试命令 ``` npm test # Unit tests (Vitest) npm run typecheck # TypeScript type checking npm run lint # ESLint npm run build # Production build npm run test:e2e # Playwright E2E tests (requires dev servers running) ``` ## 项目结构 ``` authzmapper/ ├── server/ # Express backend │ └── src/ │ ├── routes/ # API route handlers │ ├── engine/ # Scan engine (parser, matrix, executor, analyzer, redactor) │ ├── demo/ # Intentionally vulnerable demo API │ ├── middleware/ # Rate limiting, timeout, error handling │ └── db/ # SQLite database layer ├── src/ # React frontend │ └── components/ # UI components ├── e2e/ # Playwright E2E tests ├── Dockerfile ├── docker-compose.yml └── package.json ``` ## 技术栈 - **Frontend**: React 19, Vite 6, TypeScript, Tailwind CSS 4 - **Backend**: Node.js, Express, TypeScript - **Database**: SQLite (通过 sql.js) - **Testing**: Vitest, Playwright - **Container**: Docker, Docker Compose
标签:API安全测试, BFLA漏洞检测, BOLA漏洞检测, DInvoke, GNU通用公共许可证, MITM代理, Node.js, 授权测试, 特征检测, 自动化攻击, 请求拦截