rendidwisa/aura

GitHub: rendidwisa/aura

AURA 是一款专注于自动发现 Web API 中 IDOR 与 BOLA 授权漏洞的 CLI 扫描器。

Stars: 0 | Forks: 0

# AURA — IDOR & BOLA 漏洞扫描器 安全、自动化的 IDOR/BOLA 检测,输出可直接用于分类筛选的结果。 AURA 是一款 CLI 扫描器,专注于发现 Web 应用和 API 中的**不安全的直接对象引用 (IDOR)** 和 **对象级别授权失效 (BOLA)** 漏洞。它会从目标的 HTML/JS bundle 中发现 endpoint,使用你自己的 auth token 和替换后的 object ID 对其进行测试, 并且仅报告看起来像是真正授权绕过的响应。 ## 功能 - IDOR 检测(路径和查询参数替换) - BOLA 检测,支持基于状态码的确认(过滤掉 401/403/404 噪音) - 从 HTML、JS bundle 和 source map 自动发现 endpoint - 支持 JWT / Bearer / Cookie / Basic / 自定义 header 认证 - 可配置的并发和速率限制 - 支持 `table`、`text`、`json` 和 `csv` 输出格式 - 对 CI 友好的退出码 ## 安装说明 从源码构建(推荐使用 Go 1.21+): ``` git clone https://github.com/rendidwisa/aura.git cd aura go build -o aura ./cmd/aura ``` 要嵌入版本信息(如同 release pipeline 所做的那样): ``` go build -ldflags "-X main.version=1.0.0 -X main.commit=$(git rev-parse --short HEAD) -X main.date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" -o aura ./cmd/aura ``` ## 快速开始 ``` # 基础扫描,无 auth ./aura --target https://api.example.com # 使用 bearer/JWT token 进行扫描 ./aura --target https://api.example.com --token YOUR_JWT_TOKEN # 调整 concurrency 和 rate limit ./aura --target https://api.example.com --threads 20 --rate-limit 50 # 通过 proxy 路由,将 JSON 结果写入文件 ./aura --target https://api.example.com --proxy http://localhost:8080 --format json --output results.json # 使用 config file 替代 flags ./aura --config config.yml ``` ## Flags | Flag | 描述 | 默认值 | |---|---|---| | `--target string` | 要扫描的目标 URL (**必填**) | — | | `--token string` | 身份验证 token | — | | `--auth-type string` | `jwt`、`bearer`、`cookie`、`basic`、`header` | `jwt` | | `--cookie string` | 用于身份验证的 Cookie header 值 | — | | `--proxy string` | 代理 URL,例如 `http://proxy:8080` | — | | `--threads int` | 并发工作线程数 | `10` | | `--rate-limit int` | 每秒最大请求数 | `100` | | `--timeout int` | 请求超时时间(秒) | `30` | | `--max-retries int` | 每个请求的最大重试次数 | `3` | | `--depth int` | 扫描深度 | `3` | | `--max-requests int` | 扫描的最大请求总数 | `1000` | | `--format string` | `table`、`text`、`json`、`csv` | `table` | | `--output string` | 将结果写入此文件而不是 stdout | — | | `--config string` | YAML 配置文件的路径 | — | | `--fuzz` | 启用 fuzz payload 测试 | `false` | | `--verbose` | 启用 debug 日志记录 | `false` | | `--quiet` | 抑制输出 | `false` | | `--version` / `-v` | 显示版本并退出 | — | | `--help` | 显示用法并退出 | — | ## 环境变量 下面列出的所有环境变量均受完全支持,它们将覆盖 配置文件中的等效设置(但它们本身会被 CLI flags 覆盖)。 | 变量 | 等效 flag | 状态 | |---|---|---| | `AURA_TARGET` | `--target` | ✅ 完全支持 | | `AUTH_AUTH_TOKEN` | `--token` | ✅ 完全支持 | | `AURA_AUTH_TYPE` | `--auth-type` | ✅ 完全支持 | | `AURA_AUTH_COOKIE` | `--cookie` | ✅ 完全支持 | | `AURA_PROXY` | `--proxy` | ✅ 完全支持 | | `AURA_TIMEOUT` | `--timeout` | ✅ 完全支持 | | `AURA_RATE_LIMIT` | `--rate-limit` | ✅ 完全支持 | | `AURA_THREADS` | `--threads` | ✅ 完全支持 | | `AURA_ENABLE_FUZZ` | `--fuzz` | ✅ 完全支持 | | `AURA_OUTPUT_FORMAT` | `--format` | ✅ 完全支持 | | `AURA_OUTPUT_FILE` | `--output` | ✅ 完全支持 | | `AURA_VERBOSE` | `--verbose` | ✅ 完全支持 | **优先级顺序**(从高到低): 1. CLI flags 2. 环境变量 3. 配置文件 4. 默认值 ## 退出码 | 代码 | 含义 | |---|---| | `0` | 扫描完成,未发现漏洞 | | `1` | 配置错误或扫描失败 | | `2` | 扫描完成,发现漏洞 | 退出码 `2` 使得 AURA 能够轻松作为一道关卡接入 CI。 ## 已知局限性 | 局限性 | 详情 | |---|---| | 仅限 GET | IDOR/BOLA 检测只发送 GET 请求;POST/PUT/PATCH/DELETE 已在 payload 中定义但尚未经过测试 | | 无自动登录 | 必须通过 `--token`/`--cookie` 手动提供 token;不支持登录流程自动化 | | 依赖 JS 的发现 | Endpoint 发现依赖于 JS bundle 分析;纯服务端渲染的应用会回退到静态 payload endpoint | | 单一 token | 多账户测试(用户 A vs 用户 B)尚未成为核心功能 | | 无正文过滤 | 如果一个 endpoint 无论 ID 是什么总是返回当前登录用户自己的数据,它可能仍会被标记 —— 需要手动验证 | | 不支持 GraphQL | 仅分析 REST 风格的 URL 模式 | | `--depth` flag | 目前已解析但尚未实现(爬取深度计划在未来的版本中发布) | 请参阅 [ARCHITECTURE.md](./docs/ARCHITECTURE.md) 了解完整的内部架构和设计原理。 ## License 待定 (TBD) — 在公开发布之前,请添加一个 `LICENSE` 文件(例如 MIT/Apache-2.0)。
标签:API安全, CISA项目, EVTX分析, Go, JSON输出, Linux安全, Ruby工具, Web安全, 加密, 文档结构分析, 日志审计, 漏洞扫描器, 蓝队分析, 越权漏洞