widhiputri/api-security-probe
GitHub: widhiputri/api-security-probe
一个轻量级的自动化 API 安全探测工具,通过简单的 YAML 配置即可快速检查 REST API 的认证弱点、越权漏洞和基础设施安全配置。
Stars: 0 | Forks: 0
# api-security-probe
轻量级 API 安全探测器,几秒钟即可运行。无需 ZAP,无需浏览器,无需繁琐的设置。将其指向任何 REST API,它将检查常见的身份验证和基础设施弱点。
## 检查内容
| 检查项 | 功能描述 |
|---|---|
| **Auth Rate Limit** | 快速发起 20 次错误登录尝试,期望返回 429 响应 |
| **API Rate Limit** | 对每个配置的 endpoint 快速发起 10 次请求,期望返回 429 响应 |
| **JWT: Tampered signature** | 破坏 token 签名,期望返回 401 |
| **JWT: Expired token** | 发送已知过期的 token,期望返回 401 |
| **JWT: Token after logout** | 登出后重新使用旧 token,期望返回 401 |
| **JWT: Algorithm none attack** | 剥离签名并设置 `alg: none`,期望返回 401 |
| **JWT: RS256 to HS256 confusion** | 使用服务器的公钥作为 HMAC 密钥来签名 token,期望返回 401 |
| **BOLA (cross-role)** | 对仅限管理员的 endpoint 使用普通用户 token,期望返回 401/403 |
| **IDOR (cross-user)** | 将 user2 的 token 用于 user 的资源 ID,期望返回 401/403/404 |
| **Security Headers** | 检查 HSTS、X-Content-Type-Options、X-Frame-Options、CSP、Referrer-Policy |
| **TLS Certificate** | 如果证书在 30 天内过期,则发出警告 |
| **Open Ports** | 扫描意外开放的端口(数据库、SSH、调试端口) |
## 安装
```
npm install -g api-security-probe
```
或者作为项目的开发依赖安装:
```
npm install --save-dev api-security-probe
```
## 快速开始
**步骤 1:** 创建配置文件(从 `sample/probe.config.yml` 复制):
```
target: https://api.example.com
auth:
type: oauth2-password
url: https://auth.example.com/realms/myrealm/protocol/openid-connect/token
client_id: myclient
client_secret: ${AUTH_CLIENT_SECRET}
roles:
admin:
username: ${ADMIN_USERNAME}
password: ${ADMIN_PASSWORD}
user:
username: ${USER_USERNAME}
password: ${USER_PASSWORD}
session:
probe_endpoint: /accounts
bola:
admin_endpoints:
- GET /admin/users
```
**步骤 2:** 将凭据设置为环境变量:
```
export AUTH_CLIENT_SECRET=...
export ADMIN_USERNAME=...
export ADMIN_PASSWORD=...
export USER_USERNAME=...
export USER_PASSWORD=...
```
**步骤 3:** 运行:
```
api-security-probe --config probe.config.yml
```
## CLI 选项
```
api-security-probe --config [options]
Options:
--config, -c Path to probe config file (YAML or JSON)
--tests
- Comma-separated tests to run (default: all)
rate-limit, api-rate-limit, session, bola, idor,
headers, tls, ports
--output
标签:API安全, BOLA检测, CISA项目, DevSecOps, IDOR检测, JSON输出, JWT安全, MITM代理, Node.js安全工具, REST API安全, TLS证书检查, Web安全扫描器, 上游代理, 安全响应头检查, 安全测试, 开源安全工具, 插件系统, 攻击性安全, 数据统计, 文档结构分析, 暗色界面, 端口扫描, 自动化安全扫描, 自定义脚本, 访问控制测试, 身份验证漏洞测试, 轻量级安全工具, 逆向工程平台, 速率限制测试