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, 授权测试, 特征检测, 自动化攻击, 请求拦截