Sharon-Needles/access
GitHub: Sharon-Needles/access
一款七阶段访问控制自动化测试 Bash 脚本,通过双账户对比方法系统性发现 IDOR/BOLA、权限提升、JWT 漏洞和 API 认证缺陷。
Stars: 0 | Forks: 0
# access.sh — 7 阶段访问控制测试
**自动化访问控制与身份验证绕过测试。测试 IDOR/BOLA、权限提升、水平访问控制、API 身份验证缺陷以及 JWT 漏洞。**
## 功能
### 7 阶段流水线
1. **端点映射** — 发现需要身份验证的端点
2. **身份验证测试** — 弱身份验证、会话固定、令牌重用
3. **IDOR/BOLA** — 不安全的直接对象引用(顺序/UUID ID)
4. **水平提升** — 访问其他用户的数据
5. **垂直提升** — 权限升级(用户 → 管理员)
6. **API 身份验证漏洞** — API 端点上缺失/薄弱的身份验证
7. **JWT 漏洞利用** — 算法混淆、密钥泄露、过期绕过
### 质量
- **双账户测试** — 比较高权限和低权限账户之间的访问权限
- **聚焦 IDOR** — 最高投资回报率(ROI)的漏洞(IDOR 平均为 $1K-$5K)
- **集成就绪** — 接收 hunt.sh 和 api.sh 的输出
- **VRT 就绪** — 预分类的测试结果
## 要求
### 必选
```
sudo pacman -S curl jq
```
### 可选
```
jwt-cli python3-jwt
```
### 两个测试账户
需要拥有两者的访问权限:
- **低权限用户** — 普通账户
- **高权限用户** — 管理员/版主账户(或不同用户)
## 安装
```
git clone https://github.com/Sharon-Needles/access
cd access
sudo ln -s "$(pwd)/access.sh" /usr/local/bin/access
```
## 快速开始
### 交互模式(推荐用于身份验证测试)
```
access
```
提示输入测试账户凭证。
### CLI 模式
```
access --target "Company" --urls api.txt --user1 low@test.com --pass1 password123
```
### 恢复运行
```
access --resume ./hunts/Company_AC_20260423_120000
```
## 用法
```
Usage: access.sh [OPTIONS]
Options:
--target NAME Target name
--urls FILE API/endpoint URLs
--user1 EMAIL Low-privilege account email
--pass1 PASSWORD Low-privilege password
--user2 EMAIL High-privilege account email (optional)
--pass2 PASSWORD High-privilege password (optional)
--platform PLATFORM bugcrowd | hackerone
--resume PATH Resume hunt
-h, --help Show help
```
### 示例
**使用两个不同的用户账户进行测试:**
```
access --target "Company" --urls endpoints.txt \
--user1 user@test.com --pass1 pass123 \
--user2 admin@test.com --pass2 adminpass
```
**IDOR 探测(顺序 ID 测试):**
```
access --target "Company" --urls "/api/users" --user1 test@company.com --pass1 test123
```
**API 身份验证漏洞:**
```
access --target "Company" --urls api.txt --platform bugcrowd
```
## 输出
```
Company_AC_20260423_*/
├── phase_1_endpoints.txt # Discovered endpoints
├── phase_2_auth_testing.txt # Auth mechanism findings
├── phase_3_idor.txt # IDOR vulnerabilities
├── phase_4_horizontal.txt # Lateral access
├── phase_5_vertical.txt # Privilege escalation
├── phase_6_api_auth.txt # Missing/weak API auth
├── phase_7_jwt.txt # JWT weaknesses
├── findings.txt # Consolidated
├── [SUBMIT:P1-P3].txt # Ready-to-submit
└── report.md # Bugcrowd/H1 ready
```
## IDOR 测试详情
IDOR 是投资回报率(ROI)最高的漏洞(平均 $1K-$5K)。测试方法:
1. **顺序 ID**:将 `/users/123` 替换为 `/users/124`、`/users/125` 等。
2. **UUID 模式**:尝试对 UUID 进行反转、递增或模糊测试
3. **请求方法切换**:在同一端点上尝试 GET、POST、PUT、DELETE
4. **参数变异**:将 `user_id=123` 更改为 `userId=123`、`id=123` 等。
5. **版本降级**:如果 `/v2/` 有身份验证,则尝试 `/v1/` 端点
## 与其他工具集成
### 来自 hunt.sh
```
cat ./hunts/Target_*/phase_3_sweep.json | jq '.[] | .url' > endpoints.txt
access --target "Target" --urls endpoints.txt --user1 test@test.com --pass1 pass
```
### 来自 api.sh
```
cat ./hunts/Target_API_*/findings.txt | grep "endpoint" | cut -d' ' -f2 > api_urls.txt
access --target "Target" --urls api_urls.txt --user1 test@test.com --pass1 pass
```
## 测试环境
- BlackArch Linux
- Bash 5.x
## 许可证
MIT
## 免责声明
仅在获得明确书面授权的情况下负责任地使用。
**重要提示**:仅对您拥有或已获得明确授权使用的账户进行访问控制测试。
标签:API安全, BOLA检测, Bug Bounty, CISA项目, CSV导出, IDOR测试, JSON输出, JWT安全, Web安全, 协议分析, 可自定义解析器, 垂直越权, 应用安全, 权限提升, 水平越权, 蓝队分析, 访问控制测试, 越权漏洞, 身份验证绕过, 逆向工具